1352: 全排列

内存限制:128 MB 时间限制:1.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:8 通过:7

题目描述

给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。
我们假设对于小写字母有'a'<b'<…<y'<'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。

输入格式

输出只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。

输出格式

输出有n+1行
前n行每行输出这个字符串的一个排列。要求字母序比较小的排列在前面。
最后一行输出全排列的数目。
字母序如下定义:
已知S=s1s2…sk,T=t1t2…tk,则S<T等价于,存在p(1<=p<=k),使得sl=t1, s2=t2,…,Sp-1=tp-1,sp<tp成立。

输入样例 复制

abc

输出样例 复制

abc
acb
bac
bca
cab
cba
6

数据范围与提示

全排列的每一个位置都有很多选择,需要尝试这些所有的选择。
另外,选择了一个需要标记一下,以免重复被选。一种排列完成后释放该标记以便下一种排列的组合。
递归终止条件:选到排列要求数目的字符