这题的话注意以下数组越界问题,可以用long类型处理最终再用整形处理。
主要有两种处理方法,一个就是转成字符串处理,第二个就是用数值处理。但是一般尽量不要用字符串处理比较慢。
ac代码为:
public int reverse(int x) {
if(x==0)return 0;
String value=x+"";
if(value.charAt(0)=='-')
value=value.substring(1);
StringBuilder sb=new StringBuilder();
for(int i=value.length()-1;i>=0;i--)
{
sb.append(value.charAt(i));
}
long num=Long.parseLong(sb.toString());
if(x<0)num=-num;
if(num<Integer.MIN_VALUE||num>Integer.MAX_VALUE)
{
return 0;
}
return (int)num;
}
数值类型处理方式为:
public int reverse(int x) {
if(x==0)return 0;
long num=0;
while (x%10==0) {
x/=10;
}
int t;
while (x!=0) {
t=x%10;//各位
num=num*10+t;
x/=10;
if(num>Integer.MAX_VALUE||num<Integer.MIN_VALUE)
return 0;
}
return (int)num;
}
原创不易,最后我请你帮两件事帮忙一下:
-
star、follow支持一下, 您的肯定是我在平台创作的源源动力。
-
微信搜索「bigsai」,关注我的公众号,不仅免费送你电子书,我还会第一时间在公众号分享知识技术。加我还可拉你进力扣打卡群一起打卡LeetCode。
记得关注、咱们下次再见!