您的位置:首页 > 编程语言 > Python开发

判断字符串是否为回文 python实现

2014-11-17 15:30 591 查看
题目:判断一个字符串是否是回文

方法:设定两个指针,分别有头尾向中间移动 或者由中间向两边移动

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def isPalindrome(s):
'''判断一个字符串是否为回文'''
lens = len(s)
if lens <=1:
return True
l,r = 0, lens-1
while l<r:
if s[l] != s[r]:
return False
l += 1
r -= 1
return True

def longestPalindrome(s):
'''查找一个字符串中的最长回文字串'''
maxl, lens = 1, len(s)
for i in xrange(lens):
j = 1
while i-j>=0 and i+j<lens:
if s[i-j] != s[i+j]:
break
j += 1
if 2*(j-1)+1 > maxl:
maxl = 2*(j-1) + 1
j = 0
while i-j>=0 and i+j+1<lens:
if s[i-j] != s[i+j+1]:
break
j += 1
if 2*(j-1)+2 > maxl:
maxl = 2*(j-1) + 2
return maxl

if __name__ == '__main__':
s = 'qabcdefgfedcbaa'
print isPalindrome(s)
print longestPalindrome(s)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: