Python Itertools压缩
作为词汇游戏的一部分,我正在尝试提取字符串中所有可能的单词。考虑字符串“驱动程序”。我想找到所有的英语单词,可以通过使用从左到右可用的字母组成。 从“司机”我们可以提取驾驶,潜水,河流和死亡。 但我们无法提取“rid”,因为并非所有字母都按从左到右的顺序出现。 现在,我将满足于提取所有字母组合,不管它是否是一个单词。 我在考虑使用循环来提取二进制模式Python Itertools压缩,python,string,loops,Python,String,Loops,作为词汇游戏的一部分,我正在尝试提取字符串中所有可能的单词。考虑字符串“驱动程序”。我想找到所有的英语单词,可以通过使用从左到右可用的字母组成。 从“司机”我们可以提取驾驶,潜水,河流和死亡。 但我们无法提取“rid”,因为并非所有字母都按从左到右的顺序出现。 现在,我将满足于提取所有字母组合,不管它是否是一个单词。 我在考虑使用循环来提取二进制模式 1=“r” 10=“e” 11=“re” 100=“v” 101=“vr” 110=“ve” 111=“ver” 1000=“i” 1001=“
- 1=“r”
- 10=“e”
- 11=“re”
- 100=“v”
- 101=“vr”
- 110=“ve”
- 111=“ver”
- 1000=“i”
- 1001=“ir”
- 1010=“ie”
- 1011=“ier”
- 1100=“四”
- 1101=“ivr”
- 1110=“ive”
- 1111=“iver”
- 11111 0=“驱动器”
谢谢你简单的数学表明你的方法是最好的方法。
由于索引i既可以存在也可以不存在,因此组合的数量将为2^n(因为我们没有洗牌)。请浏览、和,了解该网站的工作原理,帮助您改进当前和未来的问题,从而帮助您获得更好的答案。“演示如何解决此编码问题?”与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的具体问题。堆栈溢出不用于替换现有教程和文档。另请检查。这表明堆栈溢出的需求范围太广;确保保留元素的顺序(大多数这样的算法都这样做)。这就是你的字符串列表。我建议添加一些你尝试过的代码,以及为什么它不起作用或你找到的资源,以及为什么它们没有解决你的问题。有帮助吗?你没有抓住要点;OP想知道如何编写代码来解决这个问题。但是现在,这个问题不应该被回答,因为它不符合问题的要求。不,OP正在寻找一个比他们建议的更好的算法解决方案。我只是说,更好的解决方案在数学上是不可能的。OP知道他们必须从0迭代到2^n,第I个数的二进制格式将代表第I个置换的索引。谢谢@HarshAnand。您的评论引导我找到了一个功能解决方案。@DanielGaulin np!考虑接受解决方案。