【发布时间】:2021-06-30 18:21:13
【问题描述】:
我有一个 python 的递归语句。
声明
回文
回文是一个向后读和向前读相同的词(女士、中午、雷达……)。 编写一个程序,它读取一个字符串并打印所有回文,这些回文可以通过删除字符串中的一些字符来获得。生成的回文不必是英文单词!*
限制:
- 不要打印长度为 1 的回文(单字母回文)。
- 每个回文只打印一次。
我编写了以下完美运行的代码,但在第二个定义的函数中我没有使用递归,因为我不知道如何处理这部分语句。 如果有人可以帮助我,我将不胜感激。
def find_subsets(seq, n):
if n != 0:
result = []
subsets = find_subsets(seq, n-1)
for subset in subsets:
result += [subset]
result += [[seq[n-1]] + subset]
return result
else:
return [[]]
def check_palindrome(subsetsList):
finalList = []
for x in subsetsList:
if x[::-1] == x and len(x)>1:
string = " ".join(x)
print(string)
else:
continue
word = input("Write string: ")
check_palindrome(find_subsets(word, len(word)))
【问题讨论】:
-
为什么
check_palindrome需要用到递归?
标签: python string recursion substring palindrome