LeetCode-7-Reverse Integer

一、题目

给定一个32位有符号整数,反转该数的数字

题目链接:https://leetcode.com/problems/reverse-integer/description/

例子:

Input: 123
Output:  321
Input: -123
Output: -321
Input: 120
Output: 21

 注意:超出范围时返回0

二、解答

思路:x%10可以得到最低位,x/10可以把最低位去除掉,然后以当前num乘10加上当前从x取出的最低位,最终得到结果。注意边界检查,反转是可能溢出的

 1 int reverse(int x) {
 2   long long num = 0;
 4   while (true) {
 5         if (x == 0)
 6             return num;
 7         if (num * 10 > INT_MAX || num * 10 < INT_MIN)
 8             return 0;
 9         num = num * 10 + x % 10;
10         x = x / 10;
11     }

 

posted @ 2017-12-12 09:42  番茄汁汁  阅读(157)  评论(0编辑  收藏  举报