整數反轉(常規反轉法)
阿新 • • 發佈:2021-01-25
題目
給你一個 32 位的有符號整數 x ,返回 x 中每位上的數字反轉後的結果。
如果反轉後整數超過 32 位的有符號整數的範圍 [−231, 231 − 1] ,就返回 0。
假設環境不允許儲存 64 位整數(有符號或無符號)。
示例 1:
輸入:x = 123
輸出:321
示例 2:
輸入:x = -123
輸出:-321
示例 3:
輸入:x = 120
輸出:21
示例 4:
輸入:x = 0
輸出:0
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/reverse-integer
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
解答
class Solution {
public int reverse(int x) {
//通過long和int的不同界來排除
long n = 0;
while(x != 0){
n = n * 10 + x % 10;
x /= 10;
}
return (int)n == n? (int)n : 0;
}
}
反轉整數的核心程式碼就是取餘和除10,這裡由於規定了邊界,要採用long轉int來巧妙的歸避越界問題。