Giải pháp leetcode số nguyên đảo ngược javascript

Cho một số nguyên 32 bit có dấu x, trả về x với các chữ số của nó bị đảo ngược. Nếu việc đảo ngược x khiến giá trị nằm ngoài phạm vi số nguyên 32 bit có dấu [-2^31, 2^31 - 1], thì trả về 0

Tuyên bố vấn đề lấy từ. https. //leetcode. com/problems/reverse-integer

ví dụ 1

Input: x = 123
Output: 321

ví dụ 2

Input: x = -123
Output: -321

ví dụ 3

Input: x = 120
Output: 21

Ví dụ 4

Input: x = 0
Output: 0

Hạn chế

-2^31 0]{
        reversed = [reversed * 10] + [x % 10];
        
        x = parseInt[x/10];
    }
    
    if[reversed > 2**31]{
        return 0;
    }
    
    return isNegative? reversed * -1 : reversed;
};

Vì vậy, như đã thảo luận ở trên, trước tiên, chúng tôi xác định xem số đó có âm không và lấy giá trị tuyệt đối của số

Lặp đi lặp lại lấy chữ số cuối cùng của số và thêm nó vào số bị đảo ngược. Ví dụ: nếu chúng ta có 1 và chúng ta muốn nối thêm 3 vào nó để nó trở thành 13, chúng ta sẽ nhân 1 với 10 và thêm 3 vào nó. Điều này đúng với bất kỳ số nào, nếu chúng ta cần thêm bất kỳ thứ gì vào cuối số, chúng ta nhân với 10 và cộng số cần thêm

Chia cho 10 và lấy số nguyên, chỉ cần xóa chữ số cuối cùng của số đó. [ Hãy tự mình thử ] ]

Tiếp theo, logic khá đơn giản nếu số bị đảo ngược lớn hơn 231 trả về 0 nếu không thì trả về số bị đảo ngược có dấu

Đây là số liệu thống kê mà chúng tôi chạy mã này

Status: Accepted
Runtime: 72ms
Memory: 35.9MB

Thời gian và không gian phức tạp

Thật không may, chúng tôi đã không cải thiện độ phức tạp của thời gian. Đó là O[len X] [ lưu ý vòng lặp chạy len X lần]. Tương tự với không gian, O[1]

Vì vậy, chúng tôi đã giải quyết vấn đề số nguyên đảo ngược bằng 2 phương pháp, mặc dù độ phức tạp là như nhau, thật tốt khi biết cả hai cách tiếp cận. Trong một cuộc phỏng vấn, bạn có thể được yêu cầu không sử dụng các phương thức Toán học/Chuỗi/Mảng, sau đó bạn có thể sử dụng phương pháp đảo ngược dựa trên số nguyên

Tôi hy vọng bạn thích giải quyết câu hỏi này. Đây là nó dành cho cái này, bạn có thể tìm thấy mã nguồn hoàn chỉnh cho bài đăng này trên Github Repo của tôi. Hẹn gặp lại bạn trong lần sau

Đây rồi các bạn, bạn đã làm cho nó đến cuối bài viết. Đăng ký kênh youtube của tôi để cập nhật thường xuyên. Theo dõi tôi trên twitter, gửi thư cho tôi hoặc để lại nhận xét tại đây nếu bạn vẫn còn thắc mắc và tôi sẽ cố gắng hết sức để giúp bạn. Cảm ơn

Chủ Đề