Skip to main content

Check a string is palindrome or not

 A string is said to be a palindrome if the string remains the same after reversing.

eg.- 

- code (after reversing the string "code" it becomes "edoc")  so, the given string "code" is not a palindrome.

- madam (after reversing the string  "madam" it becomes "madam")  so, the given string "madam" is a palindrome.

Java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
 import java.util.Scanner;
 public class CheckStringPalindrome {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        StringBuffer sb = new StringBuffer(str);
        sb.reverse();
        String rev = new String(sb);
        if (str.equals(rev))
        {
            System.out.println("String is Palindrome");
        }
        else {
            System.out.println("String is not Palindrome");

        }
    }
 }

Explanation:-
  • At line 6 we create a Scanner class object to take input from the user.
  • Taking an input as string from the user (line 7) named as "str".
  • As we know, String is immutable (i.e. not changeable) and it also doesn't have an inbuilt reverse method. So at line 8, we are creating a StringBuffer object reference named "sb" (which is mutable or changeable ) using the string that we have already taken from the user inline 7(i.e. str).
  • Now we are using the reverse( ) (inbuilt method) of StringBuffer class at line 9 to reverse the string and storing it in the same variable "sb".
  • After reversing the string "sb" we are creating the normal String class object("rev") with reverse value(line 10).
  • Now we are comparing the string taken from the user ("str") and reversed string("rev") using equals() (inbuilt method) of String class.

Another approach:-

Java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 import java.util.Scanner;
 public class Main
 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		String rev = "";
		for(int i=0; i<str.length(); i++)
		    rev = str.charAt(i) + rev;
		if(rev.equals(str))
		    System.out.println(str+" is palindrome");
		else
		    System.out.println(str+" is not palindrome");
	}
 }

Python

input_str = input("Enter a string:")
if input_str==input_str[::-1]:
    print(input_str,"is palindrome")
else:
    print(input_str,"is not palindrome")

Explanation:
  • Line 1 is taking input from the user and storing it in the variable named "string".
  • Line 2 Comparing the string with its reverse using slicing operator.

If You have any doubts related to this post write in the comment section 
if you want to ask a Programming question or to give any suggestions or feedback click here.


Popular posts from this blog

Check whether a number is Seed of another number

 A number P is said to be the seed of another number Q if multiplying P with its digits equates to Q. Ex:-  123 is seed of 738 as    123 * 1 * 2 * 3 = 738  Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class Seed{ public static void main (String[] args){ int num1 = 123 , num2 = 738 ; num1 = Math. min (num1,num2); num2 = Math. max (num1,num2); System. out . println (checkSeed(num1, num2)); } public static boolean checkSeed ( int num1, int num2){ int seed = num1; while (num1> 0 ){ seed = seed * (num1% 10 ); num1 = num1 / 10 ; } if (seed==num2) return true ; else return false ; } } Python def checkSeed(num1,num2): seed = num1 while num1 > 0 : seed = seed * (num1 % 10 ) num1 = num1 // 10 if seed == n

Program to sort the first half of an array in ascending and second half in descending order

Ex:-  [2, 4, 3, 10, 5, 8] [2, 4, 3]  and [10, 5, 8] ====>  [2, 3, 4] ascending                                                              [10, 8, 5] descending [ 2, 3, 4, 10, 8, 5] is the required answer.  Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class ArraySort{ public static void main (String[] args){ int [] arr = { 2 , 4 , 3 , 10 , 5 , 8 }; //sorting first half in ascending order for ( int i= 0 ; i<(arr. length / 2 ); i++){ for ( int j=i+ 1 ; j<(arr. length / 2 ); j++){ if (arr[i]>arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } //sorting second half in descending order for ( int i=(arr. length / 2 ); i<arr. length ; i++){ for ( int j=i+ 1 ; j<arr. length ; j++)

Write a method to move hyphens to the left and characters to the right in a string

 Ex:-     code--heist--   ==>     ----codeheist Note:-  Return null or None if str is empty. Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public static String moveHyphens (String str) { if (str. length ()== 0 ) return null ; else { String result = "" ; for ( int i= 0 ; i<str. length (); i++){ char ch = str. charAt (i); if (ch== '-' ) result = ch + result; else result += ch; } return result; } } Python def moveHyphens (str): if len(str)== 0 : return None else : result = "" for char in str: if char== '-' : result = char + result; else : result += char return result