Reputation: 610
Is the code below code good for checking whether a string is palindrome or not?
What is its time complexity? I guess it's, O(1)
am I right? Because we are just accessing the same string with different indexes and so accessing index O(1)
is an operation. Please correct me if I'm wrong. Please provide a better solution, if possible.
s1 = 'abccba'
s2 = s1[::-1]
if s1==s2:
print('Palindrome')
else:
print('Not Palindrome')
Upvotes: 4
Views: 7217
Reputation: 22954
def check_palin(word):
for i in range(len(word)//2):
if word[i] != word[-(i+1)]:
return False
return True
I guess this is a bit more efficient solution as it iterates over half of the string and returns False
whenever the condition is violated. But still the complexity would be O(n)
Upvotes: 9