在 Python 中反转字符串和回文时间复杂度

Har*_*dha 3 python string list palindrome

下面的代码是否适合检查字符串是否为回文?它的时间复杂度是多少?我想是的,O(1)我说得对吗?因为我们只是访问具有不同索引的相同字符串,因此访问索引O(1)是一种操作。如果我错了,请纠正我。如果可能,请提供更好的解决方案。

s1 = 'abccba'
s2 = s1[::-1]
if s1==s2:
    print('Palindrome')
else:
    print('Not Palindrome')
Run Code Online (Sandbox Code Playgroud)

Zda*_*daR 7

def check_palin(word):
    for i in range(len(word)//2):
        if word[i] != word[-(i+1)]:
            return False
    return True
Run Code Online (Sandbox Code Playgroud)

我想这是一个更有效的解决方案,因为它迭代超过一半的字符串并False在违反条件时返回。但复杂性仍然是O(n)