Python program to check if a string is palindrome or not

Given a string, write a python function to check if it is palindrome or not. A string is said to be palindrome if the reverse of the string is the same as string. For example, “radar” is a palindrome, but “radix” is not a palindrome.
Examples: 
 

Input : malayalam
Output : Yes

Input : geeks
Output : No

 

Method #1 
1) Find reverse of string 
2) Check if reverse and original are same or not.
 

Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# function which return reverse of a string
 
def isPalindrome(s):
    return s == s[::-1]
 
 
# Driver code
s = "malayalam"
ans = isPalindrome(s)
 
if ans:
    print("Yes")
else:
    print("No")

chevron_right


Output : 

Yes

Iterative Method: This method is contributed by Shariq Raza. Run a loop from starting to length/2 and check the first character to the last character of the string and second to second last one and so on …. If any character mismatches, the string wouldn’t be a palindrome.
Below is the implementation of above approach: 
 



Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# function to check string is
# palindrome or not
def isPalindrome(str):
 
    # Run loop from 0 to len/2
    for i in range(0, int(len(str)/2)):
        if str[i] != str[len(str)-i-1]:
            return False
    return True
 
# main function
s = "malayalam"
ans = isPalindrome(s)
 
if (ans):
    print("Yes")
else:
    print("No")

chevron_right


Output: 
 

Yes

Method using inbuilt function to reverse a string: This method is contributed by Shariq Raza. In this method, predefined function ‘ ‘.join(reversed(string)) is used to reverse string. 
Below is the implementation of the above approach: 
 

Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# function to check string is
# palindrome or not
def isPalindrome(s):
     
    # Using predefined function to
    # reverse to string print(s)
    rev = ''.join(reversed(s))
 
    # Checking if both string are
    # equal or not
    if (s == rev):
        return True
    return False
 
# main function
s = "malayalam"
ans = isPalindrome(s)
 
if (ans):
    print("Yes")
else:
    print("No")

chevron_right


Output: 
 

Yes

Method using one extra variable: In this method user take a character of string one by one and store in an empty variable. After storing all the character user will compare both the string and check whether it is palindrome or not. 
 

Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to check
# if a string is palindrome
# or not
 
x = "malayalam"
 
w = ""
for i in x:
    w = i + w
 
if (x == w):
    print("Yes")
else:
    print("No")
   

chevron_right


Output: 
 

Yes

Method using flag: In this method user compare each character from starting and ending in a for loop and if the character does not match then it will change the status of the flag. Then it will check the status of flag and accordingly and print whether it is a palindrome or not. 
 

Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to check
# if a string is palindrome
# or not
st = 'malayalam'
j = -1
flag = 0
for i in st:
    if i != st[j]:
      j = j - 1
      flag = 1
      break
    j = j - 1
if flag == 1:
    print("NO")
else:
    print("Yes")

chevron_right


Output: 
 

Yes

This article is contributed by Sahil Rajput. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up