为了账号安全,请及时绑定邮箱和手机立即绑定

改进搜索回文的脚本

改进搜索回文的脚本

守候你守候我 2024-01-15 21:35:11
我怎样才能让它更好/更高效/优雅?该脚本运行没有问题,但也许有办法改进它?def isPalindrome(q):   first = 0   second  = len(q)-1   for symbols in q:       while first != len(q)-1:           if q[first] != q[second]:               return False           else:               first += 1               second -=1       if first == len(q)-1:           return True
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

>>> q = "abba"

>>> q == q[::-1]

True

您还可以使用递归:


def isPalindrome(text):

    if text:

        return text[0] == text[-1] and isPalindrome(text[1:-1])

    else:

        return True

您始终可以使用以下方法timeit来衡量效率:


>>> setup = """

... def isPalindrome(text):

...         if text:

...             return text[0] == text[-1] and isPalindrome(text[1:-1])

...         else:

...             return True

...

...

... def isPalindrome2(text):

...     return text == text[::-1]

...

... """

>>> timeit.timeit('isPalindrome("amanaplanacanalpanama")', setup=setup)

4.524680453999963

>>> timeit.timeit('isPalindrome2("amanaplanacanalpanama")', setup=setup)

0.33293550200005484


查看完整回答
反对 回复 2024-01-15
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信