如何递归使具有指定长度的字符串子集?

时间:2019-06-14 07:07:57

标签: python

用户输入一个字符串和一个长度为m的方法,该方法应该是回文的所有可能的大小为m的子集组合。这应该递归进行。程序应该接受这样的输入:

is_palindrome("peel",3)

它应该输出回文字符串中长度为m(此处为3)的所有不同字母组合。有两个“ ele”和“ epe”,因为在不同的索引处有两个不同的“ e”。

Output : ['ele','ele','epe','epe']

我知道如何执行正常的is_palindrome递归方法:

def is_palindrome(string):
    if(len(string)==1):
        return True

if(string[0]!=string[len(string)-1]):
        return False
return is_palindrome(string[1:-1])

老实说,我最大的问题是如何将字符串递归分解为长度为m的不同子字符串,我知道我可以轻松使用其他方法和函数或itertools或其他库,但是此练习的重点是了解如何递归应用。有一个递归的解决方案(正如我的书所指出的那样),所以我想可以不借助itertools来做到这一点?

感谢您的帮助。

0 个答案:

没有答案