标签:博客 一个人 ring 符号 求和 总结 环境 amp eof
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [?231, 231 ? 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。
示例1:
输入:x = 123
输出:321
示例2:
输入:x = -123
输出:-321
示例3:
输入:x = 120
输出:21
提示:
-231 <= x <= 231 - 1
第一步:约束条件
观察本题的约束条件:32位的有符号整数,不能用64位的。
第二部:思考
首先想到的是字符串,然后数学计算。
第三部:字符串
1. 转字符串
2. 遍历字符串,判断第一个字符是否是符号位?根据每一位字符求和。
3. 加入约束条件,我想到的约束方式有:
if(c != 0 && sum % c != cur) return 0;
其中c是当前要放到第一位的数,sum是总和,cur是上一次计算的sum。
 1 public class Reverse7 {
 2     public int reverse(int x) {
 3         int flag = 1;
 4         String s = String.valueOf(x);
 5         int sum = 0, temp = 1;
 6         for(int i = 0; i < s.length(); i++) {
 7             if(i == 0 && s.charAt(i) == ‘-‘) {
 8                 flag = -1;
 9             } else {
10                 int cur = sum;
11                 int c = Integer.parseInt(String.valueOf(s.charAt(i))) * temp;
12                 sum += c;
13                 temp *= 10;
14                 // if(cur != 0 && sum % 10 != cur % 10) return 0;
15 
16                 if(c != 0 && sum % c != cur) return 0;
17             }
18         }
19         return flag * sum;
20     }
21 
22     public static void main(String[] args) {
23         // int x = 1563847412;
24         int x = -2147483412;
25         System.out.println(new Reverse7().reverse(x));
26     }
27 }
努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!
如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。
标签:博客 一个人 ring 符号 求和 总结 环境 amp eof
原文地址:https://www.cnblogs.com/haifwu/p/14939983.html