7. Reverse Integer
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
難度:easy
題目:
給定32位帶符號整數,反轉該整數。
注意:
假定處理的環境只能儲存32位帶符號整數範軒為[負的2的32次方, 2的32次方]。 這個問題的目的在於溢位的整數返回0.
思路:兩次反轉,如果不變則沒有溢位,如果不同分為兩種情況一種是變之前尾數有0的,另一種則是溢位的。
Runtime: 16 ms, faster than 97.34% of Java online submissions for Reverse Integer.
public class Solution { public int reverse(int x) { int result = justReverse(x); int reverseResult = justReverse(result); // 120 -> 21 -> 12, so x % reverseResult == 0 is also not overflow return reverseResult == x || x % reverseResult == 0 ? result : 0; } private int justReverse(int x) { int result = 0; while(x != 0) { int m = x % 10; x = x / 10; result = result * 10 + m; } return result; } }