Harsh Vardhan Ladha Harsh Vardhan Ladha - 1 year ago 71
Python Question

Reversing a string and palindrom time complexity in Python

Is the code below code good for checking whether a string is palindrome or not?
What is its time complexity? I guess it's,

am I right? Because we are just accessing the same string with different indexes and so accessing index
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'
print 'Not Palindrome'

Answer Source
def check_palin(word):
    for i in xrange(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)