整数反转---简单
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例:
示例 1:
输入: 123 输出: 321
示例 2:
输入: -123 输出: -321
示例 3:
输入: 120 输出: 21
思路:
先统计出长度,然后根据位数乘相应的权。如下:
class Solution { public: int reverse(int x) { int c=x; int length=1; while(c/10!=0) { length++; c/=10; } long sum=0; while(length) { int n=x%10; sum+=n*std::pow(10,length-1); x/=10; length--; } if(sum>INT_MAX||sum<INT_MIN) return 0; return sum; } };
简介的做法:
class Solution { public: int reverse(int x) { long r = 0; while(x != 0){ int m = x % 10; x = x / 10; r = r * 10 + m; } if(r > gMAX || r < gMIN) return 0; return r; } };