我需要编写一个接收字符串和组数的函数,然后返回所有可能的切片选项。
即对于func('hello', 3):
[['h', 'e', 'llo'], ['h', 'el', 'lo'], ['h', 'ell', 'o'], ['he', 'll', 'o'], ['he', 'l', 'lo'], ['hel', 'l', 'o']]
Run Code Online (Sandbox Code Playgroud)
如何在不使用递归的情况下做到这一点?这应该只能使用循环和列表才能实现。
这类似于“将球分成垃圾箱”的问题,但在这种情况下它是不同的,因为对象的顺序永远不会改变,只是切片。
这是我目前拥有的代码:
def divide_into_two(word):
list_of_divs = []
for i in range(1, len(word)):
list_of_divs.append([word[0:i], word[i:len(word)]])
return list_of_divs
Run Code Online (Sandbox Code Playgroud)
它只将一个词分为两组。我想我们需要某种内部循环来继续划分它,以防它有更多的组,但我不知道该怎么做。