检查回文

时间:2019-07-24 13:24:09

标签: python boolean palindrome

这是一次考试的问题。可以说我们有一个函数def回文,我们称它为。如果是回文,则该函数应返回True。

def palindrome(s):
    ...
palindrome("radar")

为了检查它是否是回文,我试图反转该字符串以查看它是否相同。我使用了s.find(s[::-1])

考试的替代方法是:

return  bool(s.find(s[::-1]))
return  not(bool(s.find(s[::-1]

我不明白这两种选择之间的区别,有人可以解释吗?

2 个答案:

答案 0 :(得分:1)

等于运算符'=='返回True或False

def palindrome(s):
    reverse_str = s[::-1]
    return s == reverse_str

palindrome("radar")

查找()方法查找指定值的第一次出现,或者如果找不到该值,则返回-1。

def palindrome(s):
    reverse_str = s[::-1]
    return s.find(reverse_str)

palindrome("radar")

0

答案 1 :(得分:0)

解决方案#1

return  bool(s.find(s[::-1]))

这与您的解决方案相同。唯一的区别是它被强制转换为布尔类型。

  

bool()方法使用以下命令将值转换为布尔值(True或False)   标准真相测试程序。

解决方案2

return  not(bool(s.find(s[::-1]))

与先前的解决方案相同,但是结果被翻转。为什么要翻转它?当找到结果为0时,结果为-1。结果为False(0)和True(-1)。所以很奇怪,当发现它给出False,而当没发现它给出True。这就是为什么它被翻转。