【发布时间】:2021-04-22 19:39:36
【问题描述】:
我可以得到一个列表形式的线索(例如 [1,3,1])和字符串的长度(例如 8),并根据线索生成所有可能的字符串。那就是:
- 01011101
- 10111010
- 10111001
- 10011101
三组 1 由线索给出的一个或多个 0 分隔(按此顺序)。
线索指定由至少一个 0 分隔的 1 组的长度。这些组的顺序必须遵循线索列表中的顺序。
我的方法是使用递归,每次调用都尝试在字符串中插入一组特定的 1(按照线索列表的顺序)。它使用 for 循环将其放置在字符串的所有可能索引中,并使用 clue = clue[1:] 和 size = size - clue[0] 为每个位置递归调用自身。
如何在 Python 中有效地做到这一点?
【问题讨论】:
-
您能否澄清一下“以列表的形式提供的线索”是什么意思?
[1,3,1]是指一组1个1,一组3个1,一组1个1吗?这些有顺序吗?你有什么办法解决这个问题吗? -
是的,所有这些组都按特定顺序由至少一个 0 分隔。我将在问题中包含我的方法。
标签: python-3.x