免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2399 | 回复: 0
打印 上一主题 下一主题

判断一段序列是否为回文palindrome [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-04 20:10 |只看该作者 |倒序浏览
参考:
http://www.google.cn/codesearch/p?hl=zh-CN#DHu031yp3ns/~chili/PBI/ProgramExamples/FromCourseNotes/ispalindrome2.py&q=genome%20lang:python

输入一段序列,判断该序列是否为回文
1,分别从左到右、从右到左判断字符是否相等。


def is_palindrome(text):
    p1 = 0
    p2 = len(text) - 1
    t = text.lower()
    while p1  p2:
        if not text[p1].isalnum():
            p1 += 1
        elif not text[p2].isalnum():
            p2 -= 1
        else:
            print t[p1],t[p2]
            if t[p1] != t[p2]:
                return False
        p1 += 1
        p2 -= 1
    return True
if is_palindrome(raw_input("Input sentence: ")):
    print "Palindrome!"

2,直接将整个序列反转,判断源序列和反转后的序列是否相等

s = raw_input("Sentence? ").replace(" ", "").lower()
if s == s[::-1]:
    print "Your sentence is a palindrome"
else:
    print "Not a palindrome"


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/33851/showart_1890289.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP