1. 程式人生 > >遞歸_百煉 2748 全排列

遞歸_百煉 2748 全排列

mark fin secure div gin tac class queue math

#define _CRT_SECURE_NO_WARNINGS  
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <map>
#include <queue>
#include <string>
#include <iostream>
#include <ctype.h>
#include <string
.h> #include <set> #include <stack> #include<functional> using namespace std; #define Size 27 #define maxn 1<<30 int mark[Size]; int b[Size]; char a[Size]; set<char> s; vector<char> v; int len; void dfs(int pos){ if (pos > len){ vector<char>::iterator iter = v.begin();
for (; iter < v.end(); iter++) cout << *iter; cout << endl; return; } for (int i = 0; i < 26; i++){ if (b[i] && mark[i] == 0) { char c = i+ a; v.push_back(c); mark[i] = 1; dfs(pos
+ 1); mark[i] = 0; v.pop_back(); } } } int main(){ cin >> a; len = strlen(a); for (int i = 0; i < len; i++) b[a[i] - a]++; dfs(1); system("pause"); return 0; }

遞歸_百煉 2748 全排列