9. Palindrome Number

shashi
2 min readJul 8, 2024

--

Solved

Easy

Topics

Companies

Hint

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?

class Solution {

/** T : O(n) S : O(1) (do not convert it to sting )*/
public boolean _isPalindrome(int x) {
String str= x+"";
int i=0, j= str.length()-1;

while ( i< j){
if( str.charAt(i++) != str.charAt(j--))
return false;
}

return true;
}


/**. T : O( n * ln(n) ) S: O(num(dig in x)) */
public boolean __isPalindrome( int x){
if( x<0) return false;

List<Integer> digList= findDigits( x, new ArrayList<>()) ;
int i= 0, j= digList.size()-1;

while( i< j){
if( digList.get(i++) != digList.get( j--)) return false;
}
return true;
}

public List<Integer> findDigits(int x, List<Integer> digList){
while( x>0){
digList.add( x%10);
x/=10;
}
return digList;
}

/**. T : O( n * ln(n) ) S: O(num(dig in x)) */
public boolean isPalindrome( int x){

return reverseIntegerX(x)== x;
}

public int reverseIntegerX( int x){
int reverse=0;
while( x>0){
reverse= reverse*10 + x%10;
x/=10;
}
return reverse;
}
}

/**

9. Palindrome Number
Solved
Easy
Topics
Companies
Hint
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?
*/

Explanation:

converting to the string , and using the pointers to check weather the

finding the reverse number involved in exceeding the inter limit

--

--

shashi
shashi

No responses yet