Đảo ngược số nguyên (Reverse Integer)
7. Reverse Integer
Đề bài
Cho một số nguyên có dấu kiểu 32-bit, hãy đảo ngược các chữ số của nó.
Ví dụ 1:
Input: 123 Output: 321
Ví dụ 2:
Input: -123 Output: -321
Ví dụ 3:
Input: 120 Output: 21
Lưu ý: Giả sử môi trường chỉ lưu được số nguyên trong phạm vi 32-bit có dấu: . Nếu số sau khi đảo bị tràn, hãy trả về 0.
Ràng buộc:
Tóm tắt đề
Với số nguyên x:
- Đảo thứ tự các chữ số của
x(giữ nguyên dấu âm/dương). - Bỏ qua các số 0 ở đầu (ví dụ
120→21). - Nếu kết quả nằm ngoài thì trả về
0.
Ý tưởng
- Lặp khi
x != 0, mỗi bước lấy chữ số cuốix % 10rồi “ghép” vào kết quảtmp = tmp*10 + digit. - Sau khi đảo xong, kiểm tra
tmpcó nằm trong phạm vi 32-bit có dấu hay không; nếu không thì trả về0.
Code
package leetcode func reverse7(x int) int { tmp := 0 for x != 0 { tmp = tmp*10 + x%10 x = x / 10 } if tmp > 1<<31-1 || tmp < -(1<<31) { return 0 } return tmp }