8.4-字串全排列
阿新 • • 發佈:2018-12-24
Write a method to compute all permutations of a string
其實就是全排列。
#include <iostream> #include <vector> #include <string> using namespace std; #define MAXN 100 int N; bool visit[MAXN]; vector<string>ans; void dfs_permute(int i, string line, string s) { if (i == N) { ans.push_back(line); } for (int k = 0; k < N; k++) { if(!visit[k]) { visit[k]=true; line.push_back(s[k]); dfs_permute(i + 1, line, s); visit[k]=false; line.resize(line.size()-1); } } } int main() { string s="abc"; N=s.size(); memset(visit, false, MAXN*sizeof(bool)); string line; dfs_permute(0, line, s); for(int i=0; i<ans.size(); i++) { for(int j=0; j<ans[i].size(); j++) cout<<ans[i][j]; cout<<endl; } return 0; }