确定字符串是否是回文

发布于 2021-01-29 14:56:57

我编写了两个简单的函数来确定字符串是否是回文。我以为它们是等效的,但是2不起作用。为什么是这样?

1个

def is_palindrome(string):
    if string == string[::-1]:
        return True
    else:
        return False

2

def is_palindrome(string):
    if string == reversed(string):
        return True
    else:
        return False
关注者
0
被浏览
67
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    reversed 不会创建字符串,而是创建“反向”对象:

    >>> reversed('radar')
    <reversed object at 0x1102f99d0>
    

    因此,字符串'radar'不等于object reversed('radar')。为了使它起作用,您需要确保reversed实际评估了该对象:

    def is_palindrome(string):
        if string == u''.join(reversed(string)):
            return True
        else:
            return False
    

    所述u''.join(reversed(string))插入件u''在每个字符串中的字符,并且这导致反转串之间正在变成一个字符串对象。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看