Hướng dẫn reverse integer leetcode solution javascript - đảo ngược giải pháp leetcode số nguyên javascript

Hôm nay tôi sẽ chỉ ra cách giải quyết vấn đề thuật toán số nguyên leetcode.

Đây là vấn đề:

1] Tôi khai báo hai biến Revnum và LastDigit, đại diện cho ngược lại và chữ số cuối cùng cho số nguyên X, tương ứng. Sau đó, tôi lặp qua X và xây dựng số nguyên ngược một chữ số mỗi lần.

const reverse = function[x]{
    let revNum = 0, lastDigit = 0;
}

2] Phần còn lại của một số chia cho 10 sẽ cho chúng ta chữ số cuối cùng. Ví dụ: 123/10 = 12.3 -> Phần còn lại là 3, đó là chữ số cuối cùng.
For example: 123/10 = 12.3 -> the remainder is 3, which is the last digit.

const reverse = function[x]{
    let revNum = 0, lastDigit = 0;
    while [x!==0] {
        lastDigit = x % 10; 
    }
}

3] Sau đó, tôi loại bỏ chữ số đó từ cuối X bằng cách sử dụng phương thức parseInt []. Ví dụ: ParseInt [12.3] = 12
For example: parseInt[12.3] = 12

const reverse = function[x]{
    let revNum = 0, lastDigit = 0;
    while [x!==0] {
        lastDigit = x % 10; 
        x = parseInt[x/10];
        revNum = revNum * 10 + lastDigit; // building up the reverse number
   }
}

4] Trong vấn đề đã lưu ý rằng chúng tôi đang xử lý một môi trường chỉ có thể lưu trữ các số nguyên trong phạm vi số nguyên có chữ ký 32 bit. Do đó, tôi kiểm tra trước liệu có thêm một chữ số khác có gây tràn hay không. Nếu nó gây ra tràn, vòng lặp sẽ bị hỏng và trả lại 0.

const reverse = function[x]{
    let revNum = 0, lastDigit = 0;
    while [x!==0] {
        lastDigit = x % 10; 
        x = parseInt[x/10]; 
        revNum = revNum * 10 + lastDigit;
        if [revNum  Math.pow[2, 31] - 1] return 0
    }
    return revNum
}

Bạn đã cuộn xuống cho đến nay, tại sao không tham gia cộng đồng các nhà phát triển 900K+ của chúng tôi tất cả các nhà phát triển cùng nhau?

Trong thử thách LeetCode này, chúng tôi đã yêu cầu đảo ngược một số nguyên được cung cấp. Bây giờ, điều này rất đơn giản trong JavaScript, nhưng một chút khó khăn hơn ở một số ngôn ngữ khác được LeetCode hỗ trợ, vì vậy giải pháp của tôi ở đây rất đơn giản, nhưng có lẽ giáp với gian lận.

Dung dịch

Đối với giải pháp này, chúng tôi lấy số được cung cấp, nhận giá trị tuyệt đối của nó [có nghĩa là, chúng tôi xóa bất kỳ ký hiệu âm nào], chuyển đổi nó thành một chuỗi, chuyển đổi chuỗi đó thành một mảng, đảo ngược mảng, tham gia vào mảng thành một Chuỗi, phân tích nó thành một số và phân loại lại nếu cần thiết.

Âm thanh phức tạp? Nó thực sự là không. Ở đây, một cuộc biểu tình:

-1234             // Number in
1234 // Absolute value
"1234" // String value
["1","2","3","4"] // Array value
["4","3","2","1"] // Reverse array value
"4321" // Joined array
4321 // Parsed number
-4321 // Negated number

Bây giờ ở đây, mã hóa:

Bây giờ, như tôi đã nói trước đó, đây là một loại gian lận. Tuy nhiên, tôi sẽ phản bác rằng trong khi giải pháp có thể rất đơn giản trong JavaScript, nó cũng rất hiệu quả. Trên thực tế, tại thời điểm viết, giải pháp này có khả năng chạy nhanh hơn 95% các bài nộp. Ngoài ra, tôi đã đặt câu hỏi tại sao chúng ta nên giải thích cho các vấn đề sẽ không bao giờ ảnh hưởng đến chúng ta, và chắc chắn sẽ đánh dấu một ứng cử viên để trình bày câu trả lời này trong một cuộc phỏng vấn của JS.

Bài Viết Liên Quan

Chủ Đề