本文主要是介绍Python获取最长子回文字符串(三重循环法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
没想到还挺费事,用递归没做出来,折腾半天三重循环搞出来了的...有空优化下代码,感觉应该用递归的
代码如下,恶心的代码...还有一些小瑕疵,等长度的回文字符串没输出
mystr='abccbaffeed'
mylist=list(mystr)
# print(mylist)
strlist=[]
def func(mylist):global strlistlenght=len(mylist)for i in range(0,lenght):k=istate = 0j=lenght-1while j-k>0:# for j in range(lenght-1,i+2,-1):while mylist[k]==mylist[j]:if j-k==1 or j-k==0:j-=1state+=1breakk+=1state+=1j-=1else:state=0k=ij-=1# myindex=mylist.index()if state>0:strlist.append(mylist[i:i+state*2+j-k])a=strlist
func(mylist)
print(strlist)
maxlenth=0
strsublist=''
for item in strlist:if len(item)>maxlenth:maxlenth=len(item)strsublist=item
mystr=''.join(strsublist)
print('最大子回文字符串是{}'.format(mystr))
运行结果:
这篇关于Python获取最长子回文字符串(三重循环法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!