Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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')
like image 918
Harsh Vardhan Ladha Avatar asked Feb 11 '23 12:02

Harsh Vardhan Ladha


1 Answers

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)

like image 116
ZdaR Avatar answered Feb 13 '23 02:02

ZdaR