这个需要考虑几种情况:
- 1 2 3 4 5 3 2 1 可以
- 1 2 4 3 5 3 2 1 可以
- 1 2 4 3 3 5 2 1 不可以
- 1 2 3 4 4 3 2 1 可以
- 1 2 3 5 3 2 1 可以
- 1 2 4 5 3 2 1 不可以
- 1 2 4 4 3 2 1 可以
- 1 3 4 4 3 2 1 可以
或者用土办法想 ,插入数有俩个纬度,1,单数会变成偶数,偶数会变成单数
2,插入的位置 只有左半部,中间,右半部
所以要让填完之后的字符串变成回文,也就是左右相等。
所以从头开始比对,发现不一样的,就insert。然后判断是不是回文就可以了
所以我们的函数内可以这么写:
def panduan(str1):
from copy import deepcopy
li = list(str1)
state = False
if li == li[::-1]:
state = True
else:
for i in range(len(li)/2):
if li[i] != li[-1-i]:
liA = deepcopy(li)
liA.insert(i, li[-1 - i])
liB = deepcopy(li)
liB.insert(-i,li[i])
if liA == liA[::-1]:
print 'liA:',''.join(liA)
state = True
if liB == liB[::-1]:
print 'liB:',''.join(liB)
state = True
return state
print panduan("12345421")