没想到还挺费事,用递归没做出来,折腾半天三重循环搞出来了的...有空优化下代码,感觉应该用递归的
代码如下,恶心的代码...还有一些小瑕疵,等长度的回文字符串没输出
mystr='abccbaffeed'
mylist=list(mystr)
strlist=[]
def func(mylist):
global strlist
lenght=len(mylist)
for i in range(0,lenght):
k=i
state = 0
j=lenght-1
while j-k>0:
while mylist[k]==mylist[j]:
if j-k==1 or j-k==0:
j-=1
state+=1
break
k+=1
state+=1
j-=1
else:
state=0
k=i
j-=1
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))
'运行结果: