DSA Problem Solution
Leetcode: Problem-9​
Description:​
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.
Solution in Java:​
public class Solution {
public boolean isPalindrome(int x) {
if (x < 0) {
return false; // Negative numbers are not palindromes
}
int original = x;
int reversed = 0;
while (x != 0) {
int digit = x % 10; //this returns the last digit
reversed = reversed * 10 + digit;
x /= 10; //x=x/10 which removes the last digit
}
return original == reversed;
}
public static void main(String args[]) {
int x = 121;
PalindromeChecker checker = new PalindromeChecker();
boolean result = checker.isPalindrome(x);
if (result) {
System.out.println(x + " is a palindrome.");
} else {
System.out.println(x + " is not a palindrome.");
}
}
}