OpenJudge 全排列

来源:互联网 发布:城市网络超市 编辑:程序博客网 时间:2024/06/06 02:12

a:全排列





总时间限制: 
1000ms 
内存限制: 
65536kB
描述

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

输入
输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。
输出
输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字母序如下定义:

已知S = s1s2...sk , T = t1t2...tk,则S < T 等价于,存在p (1 <= p <= k),使得
s1 = t1, s2 = t2, ..., sp - 1 = tp - 1, sp < tp成立。
样例输入
abc
样例输出
abcacbbacbcacabcba
源代码
#include "iostream"  #include "algorithm"  #include <string.h>using namespace std;    void permutation(char* str,int length)  {      sort(str,str+length);      do      {          for(int i=0;i<length;i++)              cout<<str[i];          cout<<endl;      }while(next_permutation(str,str+length));  }  int main(void)  {      char str[7];      int n; cin >> str; n=strlen(str);    permutation(str,n);      return 0;  }  


原创粉丝点击