本文主要是介绍全排列【北京大学】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接
next_permutation()函数
#include<bits/stdc++.h>
using namespace std;int main(){string str;while(cin>>str){sort(str.begin(),str.end());do{cout<<str<<endl;}while(next_permutation(str.begin(),str.end()));cout<<endl; }return 0;
}
深搜DFS
#include<bits/stdc++.h>
using namespace std;
string str,res;
int vis[10];
void DFS(int now){if(now == str.size()){cout<<res<<endl;return;}for(int i=0; i<str.size(); i++){if(vis[i]) continue;vis[i] = 1;res[now] = str[i];DFS(now+1);vis[i] = 0; //回溯 }
}
int main(){while(cin>>str){memset(vis, 0, sizeof(vis));sort(str.begin(),str.end());res = str;DFS(0);cout<<endl; }return 0;
}
这篇关于全排列【北京大学】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!