1、題目
給出一個 32 位的有符号整數,你需要将這個整數中每位上的數字進行反轉。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB9ENBpnT1EleNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3MDN5UzMxkTM2ETMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2、代碼實作
class Solution {
public int reverse(int x) {
//這裡之是以取long類型,是因為Leetcode有輸入值1534236469,
//轉化後是9646324351,直接傳回會超出int類型的取值範圍,需要強制轉換int類型
long n = 0;
while(x != 0) {
//依次取個位數十位數...(通過對10求餘得到),并逐漸加到n上(通過*10進位)
n = n*10 + x%10;
x = x/10;
}
//強制轉換int類型,
//如果強制轉換後,越界(亦是轉換前後數值不相等),那麼根據題意傳回0即可(注意這個條件)
return (int)n==n? (int)n:0;
}
}