Hướng dẫn palindrome number leetcode solution python - palindrome số leetcode giải pháp python

Xin chào những người hạnh phúc 👋! Hôm nay chúng ta sẽ xem xét một vấn đề LeetCode khá dễ dàng

  • Số palindrom

Báo cáo vấn đề

Xác định xem một số nguyên là một palindrom. Một số nguyên là một palindrom khi nó đọc cùng một phía sau như về phía trước.

Theo dõi: Bạn có thể giải quyết nó mà không chuyển đổi số nguyên thành một chuỗi không? Could you solve it without converting the integer to a string?

Constraints:

-231

Ví dụ

Ví dụ 1:

Input: x = 121
Output: true

Ví dụ 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Ví dụ 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Ví dụ 4:

Input: x = -101
Output: false

Phân tích

Chúng ta cần tìm một số cho là palindrom hay không. Một số palindrom là một số mà khi đảo ngược cho cùng một số. Ví dụ, 747 là số palindrom và 526 không phải vì khi đảo ngược, nó cho 625 không bằng 526.

Ngoài ra, vì điều hiển nhiên từ các ví dụ rằng các số âm không phải là palindromes vì ​​chúng bắt đầu với - và khi đảo ngược dấu hiệu - sẽ đến ở cuối không hợp lệ. Do đó, chúng tôi chỉ phải kiểm tra các số dương

Cách tiếp cận

Chúng ta có thể dễ dàng giải quyết vấn đề này bằng cách đảo ngược số đã cho và so sánh số đảo ngược với số đã cho.

  1. Nếu số là âm, hãy trả về
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    0, nếu không sẽ tiến hành #2.
  2. Lưu trữ số đã cho
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    1 trong một biến
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    2. Chúng tôi đang làm điều đó bởi vì chúng tôi sẽ thực hiện các hoạt động của mình trên
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    2 và do đó, giá trị của nó sẽ thay đổi. Chúng tôi sẽ sử dụng
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    1 ở cuối chương trình để so sánh với số đảo ngược.
  3. Đảo ngược số (giống như LeetCode #7 - Số nguyên ngược).
  4. Trả về
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    5 Nếu số ngược và số đã cho bằng nhau,
    Input: x = -121
    Output: false
    Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
    0 khác.

Độ phức tạp về thời gian

Vì chúng ta đang đi qua toàn bộ chữ số số theo chữ số, nên độ phức tạp của thời gian phải là o (log10n). Lý do đằng sau Log10 là vì chúng tôi đang xử lý các số nguyên là cơ sở 10.O(log10n). The reason behind log10 is because we are dealing with integers which are base 10.

Độ phức tạp không gian

Do đó, chúng tôi không sử dụng bất kỳ cấu trúc dữ liệu nào cho các hoạt động tạm thời, do đó, độ phức tạp không gian là O (1).O(1).

Hãy để Lừa có được bàn tay của chúng tôi bị bẩn với mã 😍.

Mã số

Java

public class PalindromeNumber {

    public boolean isPalindrome(int x) {
        // Base condition
        if (x < 0) {
            return false;
        }
        // Store the number in a variable
        int number = x;
        // This will store the reverse of the number
        int reverse = 0;
        while (number > 0) {
            reverse = reverse * 10 + number % 10;
            number /= 10;
        }
        return x == reverse;
    }
}

Python

def isPalindrome(x: int) -> bool:
    # Base condition
    if x < 0:
        return False
    # Store the number in a variable
    number = x
    # This will store the reverse of the number
    reverse = 0
    while number:
        reverse = reverse * 10 + number % 10
        number //= 10
    return x == reverse

JavaScript

var isPalindrome = function(x) {
    // Base condition
    if (x < 0) {
        return false;
    }
    // Store the number in a variable
    let number = x;
    // This will store the reverse of the number
    let reverse = 0;
    while (number > 0) {
        reverse = reverse * 10 + number % 10;
        number = parseInt(number / 10);
    }
    return x === reverse;
};

Kotlin

fun isPalindrome(x: Int): Boolean {
    // Base condition
    if (x < 0) {
        return false
    }
    // Store the number in a variable
    var number = x
    // This will store the reverse of the number
    var reverse = 0
    while (number > 0) {
        reverse = reverse * 10 + number % 10
        number /= 10
    }
    return x == reverse
}

Sự kết luận

Xin chúc mừng 👏 !!! Chúng tôi đã giải quyết một vấn đề khác từ Leetcode và nó đã không mất quá nhiều mồ hôi của chúng tôi, phải không?

Tôi hy vọng bạn đã thích bài viết này. Hãy chia sẻ suy nghĩ của bạn về điều này.

Bạn có thể tìm thấy mã nguồn đầy đủ trên kho lưu trữ GitHub của tôi. Nếu bạn thích những gì bạn học. Hãy thoải mái và ngôi sao ⭐ nó.

  • Java
  • Python
  • JavaScript
  • Kotlin

Sự kết luận

Làm thế nào để bạn tìm thấy palindrom của một số trong Python?

n = int (input ("nhập số:")) temp = n rev = 0 while (n> 0): dig = n%10 rev = rev*10+dig n = n // 10 if (temp == Rev): In ("Số là một palindrom!")

Làm thế nào để bạn giải quyết một số palindrom?

Đặt số đã cho là Num.Một phương pháp đơn giản cho vấn đề này là trước tiên để đảo ngược các chữ số của num, sau đó so sánh mặt trái của num với num. Nếu cả hai đều giống nhau, sau đó trả về true, khác sai.first reverse digits of num, then compare the reverse of num with num. If both are same, then return true, else false.

Làm thế nào để bạn kiểm tra xem một số là số palindrom?

Một số nguyên là một palindrom nếu mặt trái của số đó bằng với số gốc.if the reverse of that number is equal to the original number.