【发布时间】:2018-06-03 02:31:31
【问题描述】:
我正在寻找一种方法来从一个句子中获取所有字符串拆分组合。 例如,对于输入语句:
“我在吃披萨”
我想得到这个输出:
[["I", "am", "eating", "pizza"],
["I", "am eating", "pizza"],
["I", "am", "eating pizza"],
["I", "am eating pizza"],
["I am", "eating", "pizza"],
["I am", "eating pizza"],
["I am eating", "pizza"],
["I am eating pizza"]]
我找不到这样做的递归方式!你有什么主意吗 ? 这不是重复的:我不是在寻找整个组合,只是订购的物品,而且总是整个单词。从所谓的重复中找不到我的答案。
【问题讨论】:
-
有 2^n 个结果,n 是可能发生拆分的位置数。可以看成一个二进制数,每个1代表这里拆分,每个0代表这里不拆分。现在你只需要迭代和解释数字。
-
首先根据空白字符拆分所有标记,然后构建所有可能的组合。
-
所谓的重复如何是这个问题的重复?另一张票是关于有序组合的,这是关于所有可能的拆分。另一个答案允许 e。 G。结果
"I"而这个问题没有。要么我太傻了,看不到这两个问题明显相等,要么他们根本不一样,在这种情况下,我想要求所有重复投票者在进行这样的投票时更加彻底。 -
@Alfe 完全同意,我真的不明白为什么它被投票为重复
-
@Alfe:我认为您或 Mohamed 都应该对此发表答案。您提出了一个简单而有效的算法,甚至是一个实现。没有答案的问题是可悲的......
标签: python arrays string recursion