码迷,mamicode.com
首页 > 其他好文 > 详细

7. 整数反转

时间:2021-06-28 19:34:47      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:博客   一个人   ring   符号   求和   总结   环境   amp   eof   

1. 题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [?231,  231 ? 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。

2. 示例

示例1:

输入:x = 123
输出:321

示例2:

输入:x = -123
输出:-321

示例3:

输入:x = 120
输出:21

提示:

-231 <= x <= 231 - 1

3. 题解

 第一步:约束条件

观察本题的约束条件:32位的有符号整数,不能用64位的。

第二部:思考

首先想到的是字符串,然后数学计算。

第三部:字符串

1. 转字符串

2. 遍历字符串,判断第一个字符是否是符号位?根据每一位字符求和。

3. 加入约束条件,我想到的约束方式有:

if(c != 0 && sum % c != cur) return 0;

 

其中c是当前要放到第一位的数,sum是总和,cur是上一次计算的sum。

4. 实现

 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 }

5. 总结

  努力去爱周围的每一个人,付出,不一定有收获,但是不付出就一定没有收获! 给街头卖艺的人零钱,不和深夜还在摆摊的小贩讨价还价。愿我的博客对你有所帮助(*^▽^*)(*^▽^*)!

  如果客官喜欢小生的园子,记得关注小生哟,小生会持续更新(#^.^#)(#^.^#)。

7. 整数反转

标签:博客   一个人   ring   符号   求和   总结   环境   amp   eof   

原文地址:https://www.cnblogs.com/haifwu/p/14939983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!