【题目】
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
【我的解法】
class Solution { public: int maxNum = pow(2,31) - 1; int minNum = pow(-2,31); int reverse(int x) { //cout << maxNum <<"+" << minNum <<endl; string a = to_string(x); //cout << "source=" << a <<endl; int reversetemp; int index; int alen = a.length(); for(index = 0; index < alen/2; ++index){ reversetemp = a[index]; a[index] = a[alen - index -1]; a[alen - index -1] = reversetemp; } //cout << "reverse=" << a << endl; //去零 index = 0; while(a[index] == '0'){ index++; } if(index >= alen){ return 0; } if(a[alen - 1] == '-'){ return reverseNeg(&a[index]); } return reversePos(&a[index]); } int reverseNeg(string a) { int index; int alen = a.length(); a[alen - 1] = '