LeetCode Solution - Problem Palindrome Number

  • Given an integer x, return true if x is a palindrome, and false otherwise. 
Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.
Example 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.
Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Constraints:
  • -231 <= x <= 231 - 1
Follow up:
  • Could you solve it without converting the integer to a string?
Solution:

Java:

class Solution {
    public boolean isPalindrome(int x) {
        // if the number is a negative number
        // if the number end with 0 except the number zero

        if (x < 0 || (x != 0 && x % 10 == 0))
            return false;
        int reverse = 0;
        int num = x;

        while (num > reverse) {
            int lastDigit = num % 10;
            reverse = reverse * 10 + lastDigit;
            num = num / 10;
        }
        return num == reverse/10 || num == reverse;

    }
}
Python:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if (x < 0 or (x != 0 and x % 10 == 0)):
            return False

        reverse = 0
        num = x
        while num > reverse:
            lastDigit = num % 10
            reverse = reverse * 10 + lastDigit
            num = num // 10
        return num == reverse//10 or num == reverse

No comments:

Post a Comment

You might also like

Deploy your Django web app to Azure Web App using App Service - F1 free plan

In this post, we will look at how we can deploy our Django app using the Microsoft Azure app service - a free plan. You need an Azure accoun...