Check the given number is palindrome or not
Published: 2022-07-10 14:18:26

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


1. 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]
>(https://dev.to/ajayk/find-the-number-of-digits-4ba5) 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`

2. 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](https://dev.to/ajayk/find-the-number-of-digits-3hkd-temp-slug-262945?preview=69487b009fffa27b767ae1bc9427e062885ae877d188448c3404371dbbc62d5bac76f36de526a59ea551e40bd642fbf91421605b12faf8c21d14d35d)
Day 11     : [Check the given number is palindrome or not](https://dev.to/ajayk/check-the-given-number-is-palindrome-or-not-ga4)