【Leetcode】【Reverse Integer】【反转整数】【C++】
- 题目:给定一个32位有符号整数,将其反转
- 说明:若反转结果或者给定的有符号整数不在32位bits所能表示的范围内,则输出0
- 例子: input:120 output:21
input:-321 output:-123
- 思路:首先判断输入是否在[-231,231-1]范围内,若不在直接返回0;若在,如果有的话,去掉整数末尾的0;最后将其反转,每求取一次当前结果,就要判断是否溢出,如果溢出,则返回0,否则返回结果。
- 代码:
class Solution { public: int reverse(int x) { long long res=0; long long max_val=1; max_val=max_val<<31; if(x>=max_val) return res; while(x && x%10==0) { x=x/10; } while(x) { res=res*10+x%10; if(res>=max_val || res<(-1*max_val)) return 0; x=x/10; } return res; } };
转载请注明出处及链接 谢谢