POJ 1256
2016-09-06 14:23
190 查看
//自定义cmp函数用于sort和next_permutation #include <stdio.h> #include <string> #include <cstring> #include <queue> #include <algorithm> #include <functional> #include <vector> #include <sstream> #include <iomanip> #include <math.h> #include <iostream> #include <sstream> #include <time.h> #include <stack> #include <set> #include <map> #include <time.h> #include <bitset> using namespace std; char str[20]; bool cmp(char a,char b) { if(a <= 'Z' && a >= 'A' && b <= 'Z' && b >= 'A') return a < b; if(a <= 'z' && a >= 'a' && b <= 'z' && b >= 'a') return a < b; if(a <= 'Z' && a >= 'A' && b <= 'z' && b >= 'a') return a + 32 <= b; if(a<='z' && a >='a' && b <= 'Z' && b >= 'A') return a < (b + 32); return false; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int T; cin>>T; while (T--) { cin>>str; int len=strlen(str); sort(str,str+len,cmp); do { cout<<str<<endl; } while(next_permutation(str,str+len,cmp)); } return 0; } //dfs搜索 #include <stdio.h> #include <string> #include <cstring> #include <queue> #include <algorithm> #include <functional> #include <vector> #include <sstream> #include <iomanip> #include <math.h> #include <iostream> #include <sstream> #include <time.h> #include <stack> #include <set> #include <map> #include <time.h> #include <bitset> using namespace std; char str[20],cstr[20]; int len; bool Visited[20]; bool cmp(char a,char b) { if(a <= 'Z' && a >= 'A' && b <= 'Z' && b >= 'A') return a < b; if(a <= 'z' && a >= 'a' && b <= 'z' && b >= 'a') return a < b; if(a <= 'Z' && a >= 'A' && b <= 'z' && b >= 'a') return a + 32 <= b; if(a<='z' && a >='a' && b <= 'Z' && b >= 'A') return a < (b + 32); return false; } void dfs(int x) { if (x==len) { for (int i=0;i<len;i++) cout<<cstr[i]; cout<<endl; } else { for (int i=0;i<len;i++) { if (!Visited[i]) { cstr[x]=str[i]; Visited[i]=true; dfs(x+1); Visited[i]=false; while (i+1<len&&str[i]==str[i+1]) i++; } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int T; cin>>T; while (T--) { memset(Visited,false,sizeof(Visited)); cin>>str; len=strlen(str); sort(str,str+len,cmp); dfs(0); } return 0; }
相关文章推荐
- poj 1256
- poj 1256
- POJ 1256
- poj_1256 DFS字典序
- poj 1256 Anagram
- POJ 1256解题报告
- POJ 1256 Anagram(全排列问题)
- POJ_1256_Anagram
- 不重复排列 POJ 1256 Anagram
- POJ 1256 Anagram
- POJ 1256 Anagram【生成有重集的全排列2.0】
- 【STL】poj 1256 Anagram
- poj 1256 全排列(含有重复字母)
- POJ 1256 Anagram 笔记
- poj 1256 Anagram
- poj 1256 Anagram
- (Relax ST1.7)POJ 1256 Anagram(求一个字符串在特殊规定下的全排列)
- poj--1256
- POJ 2080 && ZOJ 1256 日期计算实例
- poj 1256 全排列