Today we can see how to solve
Check the given number is palindrome or not
we can solve this using
1. mod method
2. String builder reverse method
A number is palindrome if number and the reverse of given number is same
for 121 the reverse of 121 is again 121 so its palindrome
for 123 the reverse of 123 is 321 321 is not equal to 123
,so it's not palindrome
- Mod Method
boolean usingModMethod(int inputNumber) {
int reverseNumber = 0;
int temp = inputNumber;
while (temp > 0) {
int lastDigit = temp % 10;
reverseNumber = reverseNumber * 10 + lastDigit;
temp=temp/10;
}
if (reverseNumber == inputNumber) {
return true;
}
return false;
}
Here we are going to check if the given number is a single digit number because even if we reverse 7 its going to give 7 only so we are checking that
if the number is not a single digit we are going to create a reverseNumber variable with 0 as initial value,Then we create a temp value and assign the input value to it
we create a while loop which is going to check is the given number is greater then Zero(0),if true we are going to enter the while loop
inside the while loop we take the last digit of the given number, so if the input is 121 and we apply mod (%) 10 to 121 it will give the last digit which is 1
121 % 10 => 1 (last digit)
now we multiply the reverseNumber by 10 and we add out last digit
reverseNumber = ( 0 * 10 ) + 1 => 1
now we divide the temp by 10 so 121 becomes 12
NOTE:- Refer Find the number of digits note section to know about divide in java.
now while loop checks is 12 greater than 0 this again enters while loop we get the last digit by mod
12 % 10 => 2 (last digit)
now we multiply the reverseNumber by 10 and we add out last digit
reverseNumber = ( 1 * 10 ) + 2(last digit) => 12
now we divide the temp by 10 so 12 becomes 1, the while loop checks is 1 greater than 0, so this again enters while loop we get the last digit by mod
1 % 10 => 1 (last digit)
now we multiply the reverseNumber by 10 and we add out last digit
reverseNumber = ( 12 * 10 ) + 1(last digit) => 121
now we divide the temp by 10 so 1 becomes 0, so temp is not greater than 0 and wont enter the while loop
we check is the inputNumber is same as reverseNumber if its same we return true
else we return false
- Using StringBuilder reverse
boolean usingStringBuilder(int inputNumber){
String str = String.valueOf(inputNumber);
StringBuilder br = new StringBuilder(str);
String reverse = br.reverse().toString();
if(str.equals(reverse)){
return true;
}
return false;
}
In This we are using to java StringBuilder reverse method to reverse the number and check is it same as inputNumber
NOTE:- Remember to convert string builder to string before compare or else you will get false always even if it same
This is a part of my DSA preparation series
Day 1 to 9 : Analysis of Algorithm
Day 10 : Find the number of digits
Day 11 : Check the given number is palindrome or not
Top comments (0)