加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 获取字符串的每个组合

发布时间:2020-12-20 13:00:37 所属栏目:Python 来源:网络整理
导读:我有一个组合学分配,涉及从特定的字符串组合中获取长度小于或等于6的每个单词. 在这种情况下,它是S = {‘a’,’ab’,’ba’}.教授刚开始将它们列出来,但我认为通过一个程序可以更容易地解决它.唯一的问题是我无法获得一个实际计算每个可能选项的好算法. 如果
我有一个组合学分配,涉及从特定的字符串组合中获取长度小于或等于6的每个单词.

在这种情况下,它是S = {‘a’,’ab’,’ba’}.教授刚开始将它们列出来,但我认为通过一个程序可以更容易地解决它.唯一的问题是我无法获得一个实际计算每个可能选项的好算法.

如果有人可以提供帮助,我会很感激.我通常用Python编程,但实际上我只需要帮助算法.

解决方法

您可以迭代生成由一个部分,两个部分,三个部分等组成的所有字符串,直到步骤中生成的所有字符串都超过六个字符.进一步的步骤只会生成更长的字符串,因此已经生成了所有可能的短字符串.如果您在每个步骤中收集这些短字符串,最终会得到一组所有可能生成的短字符串.

在Python中:

S = set(['a','ab','ba'])

collect = set()
step = set([''])
while step:
   step = set(a+b for a in step for b in S if len(a+b) <= 6)
   collect |= step

print sorted(collect)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读