首页 > 试题广场 >

解密

[编程题]解密
  • 热度指数:3760 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
亮亮深吸一口气,小心地将盒子打开,里面是一张地图,地图上除了一些奇怪的字母以外没有任何路线信息,这可让亮亮犯了愁,这些字母代表了什么意思呢? 亮亮绞尽脑汁也想不出什么思路,突然,亮亮眼前一亮,“我可以把这些字母所有的排列方式全部写出来,一定可以找到答案!” 于是,亮亮兴奋的开始寻找字母里的秘密。

输入描述:
每组数据输入只有一行,是一个由不同的大写字母组成的字符串,已知字符串的长度在1到9之间,我们假设对于大写字母有'A' < 'B' < ... < 'Y' < 'Z'。


输出描述:
输出这个字符串的所有排列方式,每行一个排列,要求字母序比较小的排列在前面。
示例1

输入

WHL

输出

HLW<br/> HWL<br/> LHW<br/> LWH<br/> WHL<br/> WLH<br/>
import itertools
s=input()
ans=[]
ans.extend(list(itertools.permutations(s,len(s))))#全排列
for i in range(len(ans)):#连接成字符串
    ans[i]=''.join(x for x in ans[i])
ans.sort()#排序
for x in ans:
    print(x)

发表于 2018-09-04 18:30:38 回复(0)

python三行解法:

from itertools import permutations
for i in permutations(sorted(input())):
    print("".join(i))
编辑于 2017-09-12 14:53:17 回复(0)
from itertools import permutations
try:
    while 1:
        s = sorted(raw_input())
        gen = permutations(s)
        try:
            while 1:
                print ''.join(next(gen))
        except:
            pass
except:
    pass

发表于 2016-12-29 00:18:40 回复(0)