标签:博客 一个人 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