力扣练习第四天——整数的反转
题目大致如下:
给一个32位的有符号的整数,将整数上的每一位数字反转位置。
链接来源于LeetCode:https://leetcode-cn.com/problems/reverse-integer/
示例一:
输入:123
输出:321
示例二:
输入:-123
输出:-321
示例三:
输入:120
输出:21
大致思路:
本题的思路可以非常直接,即创建一个数组,将整数的每一位储存,再利用循环,将数组逆序进行对应位的求和。
但是最开始写的代码在一个很大的整数时,发生了异常——整数溢出。在解决整数溢出的过程中,可以使用(try语句捕捉异常点),也可以直接把整数的范围写出来。
代码大致如下:
class Solution{
public:
int reverse(int x){
int a[50],t=0;
while(x!=0){a[t++]=x%10;x/=10;}
int s=0;
for(int i=0;i<t;i++)
s+=a[t-i-1]*pow(10.0,i);
if(s>=2147483647||s<=-2147483648)
return 0;
else
return s;
}
}
结果如下: