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.