📌  相关文章
📜  国际空间研究组织 | ISRO CS 2018 |问题 74(1)

📅  最后修改于: 2023-12-03 15:07:35.118000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2018 |问题 74

题目描述

题目要求输出一个由N个字符组成的字符串的所有排列组合。

输入格式
  • 第一行包含一个整数T,表示测试数据的组数。
  • 每组测试数据包含两行,第一行包含一个整数N(1 ≤ N ≤ 7),表示字符串的长度。第二行是字符串S,由不超过7个不同的小写字母组成。
输出格式

对于每组测试数据,输出由字符串S中的字符排列组合成的所有长度为N的字符串,每个字符串占一行。要求按字典序输出。

样例输入
2
3
abc
2
xy
样例输出
abc
acb
bac
bca
cab
cba
xy
yx
代码实现
from itertools import permutations

t = int(input())

for i in range(t):
    n = int(input())
    s = input()
    perms = sorted(permutations(s, n))
    for p in perms:
        print(''.join(p))
代码说明
  • 首先,我们导入了itertools的permutations函数来获得字符串的所有排列组合。
  • 然后,我们使用内置的sorted函数按字典序对这些组合进行排序。
  • 最后,我们使用for循环遍历所有排列组合,并使用join函数将它们组成完整的字符串。