Harsh Vardhan Ladha Harsh Vardhan Ladha - 1 year ago 120
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,

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'

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)

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download