Rosalind 034 Ordering Strings of Varying Length Lexicographically
2023-12-29 21:54:21
题目背景:
这个题目要求生成并排序一个由给定字母表构成的字符串集合。首先,你会得到一个由最多12个符号组成的排列,这个排列定义了一个有序的字母表A。接着,给定一个正整数n(n不大于4),任务是生成所有可能的、长度最多为n的字符串,这些字符串由字母表A中的符号构成,并且需要按字典顺序排列。
例如,如果字母表是D、N、A,且n=2,那么你需要生成所有由这三个字母构成、长度不超过2的字符串,并将它们按字典顺序排列。这意味着首先是所有单字母的字符串(A、D、N),然后是两个字母的组合,比如AD、AN、DA、DN、NA、ND,依此类推。
这个问题实际上是一个关于字符串组合和排序的问题,它要求考虑所有可能的字符串组合,然后根据给定的字母表顺序进行排序。.
https://rosalind.info/problems/lexv/
题目解答:
我们可以先拿到题目给的N,接着从1遍历到这个N,然后用itertools的permutations函数生成所有长度为n的子字符串,把这些子字符串放进一个集合里,最后排序一下即可。
代码:
import itertools
n = 3
list_item = input().split(' ')
res = []
for i in range(1,n+1):
temp = []
temp_list_item = list_item*i
f = itertools.permutations(temp_list_item,i)
for i in f:
if i not in temp:
temp.append(i)
res+=temp
print(sorted(res))
文章来源:https://blog.csdn.net/weixin_45848873/article/details/135297994
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!