题目内容:
对字符串(数字,字母,符号)进行全排列,并统计全排列的种树
输入描述
输入一个字符串
输出描述
输出字符串的全排列,每种情况占一行,最后一行输出全排列的个数
输入样例
123
输出样例
123 132 213 231 312 321 6
#include <iostream> using namespace std; int sum=0; void swap(char *a,char *b){ char *temp; temp=a; a=b; b=temp; } bool isswap(char str[],int k,int m){ for(int i=k;i<m;i++) // cout<<str[m]<<" "<<str[i]<<" "; if(str[m]==str[i]) return false; return true; } void Perm(char str[],int k,int m){ if(k==m){ cout<<str<<endl; sum++; } else{ for(int i=k;i<=m;i++){ // if(isswap(str,k,i)){ swap(str[k],str[i]); Perm(str,k+1,m); swap(str[k],str[i]); // } } } } int main(){ string s; cin>>s; int len; len=s.length(); char *str = new char[len]; for(int i=0;i<len;i++){ str[i]=s[i]; } Perm(str,0,len-1); cout<<sum; }