Harsh Vardhan Ladha
Harsh Vardhan Ladha

Reputation: 610

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')

Upvotes: 4

Views: 7217

Answers (1)

ZdaR
ZdaR

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

Related Questions