fork(36) download
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. void Swap(char Str[],int m,int n)
  6. {
  7. char temp=Str[m];
  8. Str[m]=Str[n];
  9. Str[n]=temp;
  10. }
  11. bool Match(char Str[],int i,int j)
  12. {
  13. if(i == j)
  14. return false;
  15. else
  16. for(;i<j;i++)
  17. if(Str[i]==Str[j])
  18. return true;
  19. return false;
  20.  
  21. }
  22. void Permute(char Str[],int m,int n)
  23. {
  24. if(m>=n){cout<<Str<<endl;return;}
  25. for(int i=m;i<=n;i++)
  26. { if(!Match(Str,m,i))
  27. {
  28. Swap(Str,i,m);
  29. Permute(Str,m+1,n);
  30. Swap(Str,i,m);
  31. }
  32.  
  33. }
  34. }
  35.  
  36. int main()
  37. {
  38. char Str[]="AABAAC";
  39. Permute(Str,0,strlen(Str)-1);
  40.  
  41. return 0;
  42. }
  43.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
AABAAC
AABACA
AABCAA
AAABAC
AAABCA
AAAABC
AAAACB
AAACAB
AAACBA
AACAAB
AACABA
AACBAA
ABAAAC
ABAACA
ABACAA
ABCAAA
ACBAAA
ACABAA
ACAABA
ACAAAB
BAAAAC
BAAACA
BAACAA
BACAAA
BCAAAA
CABAAA
CAABAA
CAAABA
CAAAAB
CBAAAA