输入字符,对字符进行完全排序。 这里用了两种方法。 递归调用(有些书写为DFS )和c系统附带的方式。
# include iostream # include string # includealgorithmusingnamespacestd; char output[10]; bool s[10]; voidpermutation(stringstr,int index ) if (index==str.size ) ) for (inti=0; i str.size (; I ) {cout output[i]; }cout endl; 返回; }for(intI=0; i str.size (; I )//每个位置有三个选择(if ) s[I] ) { continue; //这个位置不能选择这个字符。 output[index]=str[i]; s[i]=true; 性能(str,索引1 ); s[i]=false; //上溯,重要的一步}}int main (() {string s; cin s; //自定义全数组permutation(s,0 ); //系统的所有数组行数(如果没有,则为falsewhile(next_permutation ) s.begin,s.end ) ) {cout s endl; }