【STL】poj 1256 Anagram
来源:互联网 发布:iphone摄影曝光软件 编辑:程序博客网 时间:2024/05/16 15:00
Anagram
Time Limit: 1000MS
Memory Limit: 10000KTotal Submissions: 21406
Accepted: 8516
Memory Limit: 10000KTotal Submissions: 21406
Accepted: 8516
Description
You are to write a program that has to generate all possible words from a given set of letters.
Example: Given the word "abc", your program should - by exploring all different combination of the three letters - output the words "abc", "acb", "bac", "bca", "cab" and "cba".
In the word taken from the input file, some letters may appear more than once. For a given word, your program should not produce the same word more than once, and the words should be output in alphabetically ascending order.
Example: Given the word "abc", your program should - by exploring all different combination of the three letters - output the words "abc", "acb", "bac", "bca", "cab" and "cba".
In the word taken from the input file, some letters may appear more than once. For a given word, your program should not produce the same word more than once, and the words should be output in alphabetically ascending order.
Input
The input consists of several words. The first line contains a number giving the number of words to follow. Each following line contains one word. A word consists of uppercase or lowercase letters from A to Z. Uppercase and lowercase letters are to be considered different. The length of each word is less than 13.
Output
For each word in the input, the output should contain all different words that can be generated with the letters of the given word. The words generated from the same input word should be output in alphabetically ascending order. An upper case letter goes before the corresponding lower case letter.
Sample Input
3aAbabcacba
Sample Output
AabAbaaAbabAbAabaAabcacbbacbcacabcbaaabcaacbabacabcaacabacbabaacbacabcaacaabcabacbaa
Hint
An upper case letter goes before the corresponding lower case letter.
So the right order of letters is 'A'<'a'<'B'<'b'<...<'Z'<'z'.
///AC代码
So the right order of letters is 'A'<'a'<'B'<'b'<...<'Z'<'z'.
///AC代码
#include <iostream>#include <set>#include <map>#include <stack>#include <cmath>#include <queue>#include <cstdio>#include <bitset>#include <string>#include <vector>#include <iomanip>#include <cstring>#include <algorithm>#include <functional>#define PI acos(-1)#define eps 1e-8#define inf 0x3f3f3f3f#define debug(x) cout<<"---"<<x<<"---"<<endltypedef long long ll;using namespace std;bool cmp(const char &a, const 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); }}char a[22];int main(){ int t; cin >> t; while (t--) { cin >> a; int n = strlen(a); sort(a, a + n, cmp); cout << a << endl; while (next_permutation(a, a + n, cmp)) { cout << a << endl; } } return 0;}
阅读全文
0 0
- 【STL】poj 1256 Anagram
- POJ 1256.Anagram(DFS和STL)
- POJ 1256 Anagram
- POJ 1256 Anagram
- poj 1256 Anagram
- poj 1256 Anagram
- POJ 1256 Anagram
- poj 1256 Anagram
- poj 1256 Anagram
- poj 1256 Anagram
- Anagram poj 1256
- poj 1256(Anagram)
- POJ - 1256 Anagram
- 7 POJ 1256 Anagram
- poj 1256 Anagram
- POJ 1256:Anagram
- POJ 1256 Anagram
- POJ - 1256 Anagram
- #POJ2376#Cleaning Shifts(贪心 -> 最小区间覆盖)
- Spring-websocket不在Springmvc的环境下使用
- SQLMAP-初学使用
- OpenCV学习笔记
- JZOJ__Day 10:【普及模拟】【USACO】贝茜的晨练计划
- 【STL】poj 1256 Anagram
- POJ 2406 Power Strings——kmp求最短循环子串
- centos7.2安装VIM编辑软件及VIM命令大全
- GIT分布式版本控制
- Android之Debug运行项目一直卡在Debug界面(can't bind to local 8066 for debug)
- 拼多多陷信任危机:创业公司做明星还是做寿星?
- POJ1328 Radar Installation
- Java中for循环的2道经典练习题
- 只能在堆(栈)上创建的类