|
发表于 2019-12-22 19:12:39
|
显示全部楼层
大家帮忙看看最后一个函数,为什么老是不对呢????
前面两个函数我都实验过了,对的。最后一个好奇怪一直通不过~~~~~~
不知道循环为什么不停止。求教
- def palindrome(string): #建立一个判断回文字符串的函数
- length = len(string)
- for i in range(0, int(length/2 + 0.5)): #遍历前半个字符串(注意+0.5)
- if string[i] != string[length-i-1]:
- return False #如果不是回文字符串报错
- return True #如果是回文字符串报对
- def makeup(string, n):
- #在字符串前面添加n个字符 'abc',1 --> 'cabc', 'abc, 2' --> 'cbabc'
- #'abcd, 3' --> 'dcbabcd'
- return ''.join(reversed(list(string[-n:]))) + string
- def shortest_palindrome(string): #产生最短字符串
- length = len(string) #
- for i in range(0, length-1):
- res = makeup(string, i)
- if palindrome(res) == True:
- break
- else:
- continue
- return res
复制代码 |
|