Given a string, write a python function to check if it is palindrome or not. A string is said to be a palindrome if the reverse of the string is the same as the string. For example, “radar” is a palindrome, but “radix” is not a palindrome.
Examples:
Input : malayalam
Output : Yes
Input : geeks
Output : No
Python Program to Check if a String is Palindrome or Not Using Native Approach
Here we will find reverse of the string and then Check if reverse and original are same or not.
Python
def isPalindrome(s):
return s = = s[:: - 1 ]
s = "malayalam"
ans = isPalindrome(s)
if ans:
print ( "Yes" )
else :
print ( "No" )
|
Time complexity: O(n)
Auxiliary Space: O(1)
Check if a String is Palindrome or Not Using Iterative Method
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
def isPalindrome( str ):
for i in range ( 0 , int ( len ( str ) / 2 )):
if str [i] ! = str [ len ( str ) - i - 1 ]:
return False
return True
s = "malayalam"
ans = isPalindrome(s)
if (ans):
print ( "Yes" )
else :
print ( "No" )
|
Time complexity: O(n)
Auxiliary Space: O(1)
Check String is Palindrome or Not Using the inbuilt function to reverse a string
In this method, the predefined function ‘ ‘.join(reversed(string)) is used to reverse string.
Below is the implementation of the above approach:
Python
def isPalindrome(s):
rev = ''.join( reversed (s))
if (s = = rev):
return True
return False
s = "malayalam"
ans = isPalindrome(s)
if (ans):
print ( "Yes" )
else :
print ( "No" )
|
Time complexity: O(n)
Auxiliary Space: O(n)
Check String is Palindrome using one extra variable
In this method, the user takes a character of string one by one and store it in an empty variable. After storing all the characters user will compare both the string and check whether it is palindrome or not.
Python
x = "malayalam"
w = ""
for i in x:
w = i + w
if (x = = w):
print ( "Yes" )
else :
print ( "No" )
|
Time complexity: O(n)
Auxiliary Space: O(n)
Check String is Palindrome using flag
In this method, the user compares 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 the flag and accordingly and print whether it is a palindrome or not.
Python
st = 'malayalam'
j = - 1
flag = 0
for i in st:
if i ! = st[j]:
flag = 1
break
j = j - 1
if flag = = 1 :
print ( "NO" )
else :
print ( "Yes" )
|
Time complexity: O(n)
Auxiliary Space: O(1)
Check String is Palindrome using recursion
This method compares the first and the last element of the string and gives the rest of the substring to a recursive call to itself.
Python3
def isPalindrome(s):
s = s.lower()
l = len (s)
if l < 2 :
return True
elif s[ 0 ] = = s[l - 1 ]:
return isPalindrome(s[ 1 : l - 1 ])
else :
return False
s = "MalaYaLam"
ans = isPalindrome(s)
if ans:
print ( "Yes" )
else :
print ( "No" )
|
Time complexity: O(n)
Auxiliary Space: O(n)
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
18 Aug, 2023
Like Article
Save Article