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

测试列表或字符串是否是回文

测试列表或字符串是否是回文

慕的地8271018 2021-03-16 15:13:07
我有一个最后的预告片,老师说他计划在问题清单中包括一个回文检查程序。基本上,我需要编写两个单独的函数,一个用于测试列表是否是回文(如果是,则返回True),另一个用于测试字符串。到目前为止,这就是我所拥有的。似乎给我带来了麻烦:def palindrome(s)index = 0index = True     while index < len(s)                if n[index]==n[-1-index]        index=1        return True     return False我不太确定从那里去哪里。
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

对于列表或字符串:

seq == seq[::-1]


查看完整回答
反对 回复 2021-03-24
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

这是您的功能,是幼稚的方式。适用于奇数和偶数回文,列表和字符串:


def is_palindrome(s):

    return s == s[::-1]

另一个问题是回文仅是奇数或偶数序列,还是两者都存在?我的意思是不仅应abccba和abcba匹配,或只是其中之一?


如果您只想将奇数或偶数序列视为回文,则可以添加测试:


def is_palindrome(s, t='both'):

    # only odd sequences can be palindromes

    if t=='odd':

        if len(s)%2 == 0:

            return False

        else:

            return s == s[::-1]


    # only even sequences can be palindromes

    elif t=='even':

        if len(s)%2:

            return False

        else:

            return s == s[::-1]


    # both even or odd sequences can be palindromes

    else:

        return s == s[::-1]

作为字符串,只有一个函数是字符列表。如果您的老师真的想要两个功能,您仍然可以使用别名:


def is_list_palindrome(l, t='both'):

    return is_palindrome(l, t)


查看完整回答
反对 回复 2021-03-24
  • 2 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号