【发布时间】:2017-03-22 03:04:52
【问题描述】:
假设我有一个字符串列表,如下所示:
strings = ["abc", "def", "ghij"]
请注意,列表中字符串的长度可能会有所不同。
生成新字符串的方法是从列表的每个元素中按顺序取一个字母。示例:“adg”和“bfi”,但不是“dch”,因为这些字母与它们在列表中出现的顺序不同。因此,在我知道列表中只有三个元素的情况下,我可以很容易地使用嵌套的 for 循环结构生成所有可能的组合,如下所示:
for i in strings[0].length:
for ii in strings[1].length:
for iii in strings[2].length:
print(i+ii+iii)
当我事先不知道字符串列表将有多长时,问题就出现了。如果列表有 n 个元素长,那么我的解决方案需要 n 个 for 循环才能成功。
谁能指出一个相对简单的解决方案?我正在考虑一个基于 DFS 的解决方案,我将每个字母变成一个节点,并在相邻字符串中的所有字母之间建立连接,但这似乎太费力了。
【问题讨论】:
-
这是蟒蛇吗?它几乎看起来像 python...(除了我不知道
.length在那里做什么)
标签: string algorithm combinations permutation