题解 | #全排列#
全排列
https://www.nowcoder.com/practice/5632c23d0d654aecbc9315d1720421c1
#include <iostream> #include <cstring> using namespace std; char str[7]; char board[7]; bool isused[7]; void myout(int maxlevel,int now){ if(maxlevel==now){ for(int i=0;i<maxlevel;i++){ if(!isused[i]){ board[now-1]=str[i]; cout<<board<<endl; } } } else{ for(int i=0;i<maxlevel;i++){ if(!isused[i]){ board[now-1]=str[i]; isused[i]=true; myout(maxlevel,now+1); isused[i]=false; } } } } int main() { cin>>str; myout(strlen(str),1); system("pause"); return 0; }