Giới Thiệu
Trong bài viết này, chúng ta sẽ khám phá một bài toán thú vị với độ khó trung bình trên LeetCode mang tên Đảo Ngược Số Nguyên. Chúng ta sẽ cùng nhau sử dụng Python để giải quyết bài toán này trong chỉ 10 dòng mã. Hãy cùng theo dõi!
Đề Bài
Bài toán đặt ra như sau:
Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-2^31, 2^31 - 1], then return 0.
Lưu ý: Giả sử môi trường không cho phép bạn lưu trữ các số nguyên 64-bit (đã ký hoặc chưa ký).
Giải Pháp
Dưới đây là mã code hoàn chỉnh mà tôi đã sử dụng để giải quyết bài toán này:
python
class Solution:
def reverse(self, x: int) -> int:
# Lưu trữ dấu của số
sign = -1 if x < 0 else 1
# Đảo ngược các chữ số và chuyển đổi lại thành số nguyên
reversed_num = int(str(abs(x))[::-1]) * sign
# Kiểm tra tràn
if reversed_num < -2**31 or reversed_num > 2**31 - 1:
return 0
return reversed_num
Kết Quả
Chương trình của tôi hoạt động khá hiệu quả, và kết quả trả về là chính xác trong các trường hợp test khác nhau.
Kết Luận
Nếu bạn có bất kỳ thuật toán nào tốt hơn hoặc ý tưởng khác để tối ưu hóa mã nguồn của tôi, hãy chia sẻ cùng tôi nhé! Cảm ơn bạn đã quan tâm đến bài viết này và chúc bạn mãi tiến bộ trong việc rèn luyện khả năng lập trình trên LeetCode!
source: viblo