改进搜索回文的脚本

我怎样才能让它更好/更高效/优雅?

该脚本运行没有问题,但也许有办法改进它?


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


守候你守候我
浏览 107回答 1
1回答

尚方宝剑之说

>>> 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python