7-19 求解字符串数字组合

7-19 求解字符串数字组合
分数 5
作者 胡锦美
单位 闽江学院
Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数,其中combinations, permutations是用求解组合和排列的函数。 请输入一个有由数字大小写字母组成的字符串 与 一个整数 n,去掉字符串中大小字母仅保留数字的字符串,输出去重后数字符串的n位全组合。

输入格式:
例如:

第一行输入至少含一个数字字符的一串字符串,例如:ABC12DE3De125DE4(去重后数字字符串:12354);

第二行输入一整数n:( 保证n小于等于 去重后数字字符串的长度)。

输出格式:
去重后数字字符串按从大到小的全组合。每种组合占一行,字符间无空格。排列的输出顺序为字典顺序。

输入样例:
在这里给出一组输入。例如:

ABC12DE3De125DE4
3
输出样例:
在这里给出相应的输出。例如:

543
542
541
532
531
521
432
431
421
321
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

import itertools

s = input()
n = eval(input())
t = []
for i in s:
    if i.isdigit():
        t.append(i)
o = []
for i in itertools.combinations(sorted(t, reverse=True), n):
    if len(list(set(i))) == n:
        if "".join(i) not in o:
            o.append("".join(i))
for i in o:
    print(i)

你可能感兴趣的:(Python小题,算法,python)