Java [leetcode 7] Reverse Integer

问题描述:

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

Have you thought about this?

Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!

If the integer‘s last digit is 0, what should the output be? ie, cases such as 10, 100.

Did you notice that the reversed integer might overflow? Assume the
input is a 32-bit integer, then the reverse of 1000000003 overflows. How
should you handle such cases?

For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

解题思路:

需要考虑数值为负的情况,需要考虑数值反过来后溢出的情况。

代码如下:

 1 public class Solution {
 2     public int reverse(int x) {
 3         final String LowerValue = "2147483648";
 4         final String UpperValue = "2147483647";
 5         final int maxlength = 10;
 6         String sOriginal = String.valueOf(x);
 7         String sReverse = stringReverse(sOriginal);
 8         String sfinal = new String();
 9         int reversenum;
10
11         if (sReverse.charAt(sReverse.length() - 1) == ‘-‘) {
12             sfinal = sReverse.substring(0, sReverse.length() - 1);
13             if (sfinal.length() >= maxlength && sfinal.compareTo(LowerValue) > 0)
14                 reversenum = 0;
15             else
16                 reversenum = -Integer.valueOf(sfinal).intValue();
17         } else {
18             sfinal = sReverse;
19             if (sfinal.length() >= maxlength && sfinal.compareTo(UpperValue) > 0)
20                 reversenum = 0;
21             else
22                 reversenum = Integer.valueOf(sfinal).intValue();
23         }
24         return reversenum;
25     }
26
27     public String stringReverse(String s) {
28         StringBuilder stringBuilder = new StringBuilder(s);
29         stringBuilder.reverse();
30         return stringBuilder.toString();
31     }
32 }
时间: 2024-11-24 20:11:15

Java [leetcode 7] Reverse Integer的相关文章

LeetCode:Reverse Integer - 翻转数字

1.题目名称 Reverse Integer(翻转数字) 2.题目地址 https://leetcode.com/problems/reverse-integer/ 3.题目内容 英文:Reverse digits of an integer. 中文:翻转一个正整数的各位,形成一个新数字 例如:x = 123, return 321:x = -123, return -321 4.一个有瑕疵的方法(不能AC) 一个比较好想到的方法,是先将输入的数字转换为字符串,再将字符串翻转后转换为数字.这个方

(Java) LeetCode 25. Reverse Nodes in k-Group —— k个一组翻转链表

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of k then left-out nodes in

LeetCode 007 Reverse Integer

[题目] Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 [题意] 反转int型整数,输出的也是int型的整数 [思路] 如要考虑两种特殊情况: 1. 类似100这样的整数翻转之后为1 2. 翻转之后的值溢出该如何处理, 本题的测试用例中似乎没有给出溢出的情况 在实际面试时需要跟面试官明确这种情况的处理方法. 基于这点事实,本题规定如果超出正边界返回INT_MA

Leetcode 数 Reverse Integer

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Reverse Integer Total Accepted: 17472 Total Submissions: 43938 Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to show spoilers. Have you thought

【LeetCode】Reverse Integer (2 solutions)

Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have alread

LeetCode 7 Reverse Integer(反转数字)

题目来源:https://leetcode.com/problems/reverse-integer/ Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 解题思路: 其实这道题看起来非常简单,要实现也是几行代码的事.但是有个小问题容易被忽略,就是边界问题.什么意思呢?如果我们输入的整数超出了int的表达范围,这个问题要怎么解决呢? 用比int更大的数据类型存储我们转

[LeetCode][JavaScript]Reverse Integer

Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask before coding. Bonus points for you if you have alread

LeetCode #7 Reverse Integer (E)

[Problem] Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 [Analysis] 这题不难,关键是要注意overflow的处理,因为reverse后的数字有可能超出Integer的范围.有两种思路:一种是利用对10取模的运算,每次将最后一位加入结果并将结果乘10:一种是利用Java StringBuilder的reverse函数以及Integer的pars

leetcode(7): Reverse Integer 源码实现 runtime: 8ms

题目 :Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 题目分析及部分代码解析: 1.需要考虑一位数,比如1,2,3等特殊情况,返回本身. 2.需要考虑0,返回0. 3.需要考虑如123000,45600等末尾有若干零的情况,正确结果应为321.654,不应该出现000321,00654等情况. 4.需要4字节int类型数据的取值范