POJ-1256(permutation)
2011-08-16 04:53
197 查看
1256:Anagram
查看
提交
统计
提问
时间限制:
1000ms
内存限制:
65536kB
描述
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.
输入
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.
输出
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.
样例输入
3
aAb
abc
acba
样例输出
Aab
Aba
aAb
abA
bAa
baA
abc
acb
bac
bca
cab
cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa
查看
提交
统计
提问
#include"iostream"
#include"cstring"
#include"algorithm"
using namespace std;
int help(char x)//需要自己定义help函数帮助实现大小字母如A,a,B,b.....的排序
{
if(x>='a' && x<='z') return (x-'a')*2+2;
else return (x-'A')*2+1;
}
bool comp(char x, char y)
{
return help(x)<help(y);
}
int main()
{
int num;
cin>>num;
char test[13];
int len;
while(num--)
{
cin>>test;
len=strlen(test);
sort(test,test+len,comp);
do
{
cout<<test<<endl;
}while(next_permutation(test,test+len,comp));
}
}
查看
提交
统计
提问
时间限制:
1000ms
内存限制:
65536kB
描述
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.
输入
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.
输出
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.
样例输入
3
aAb
abc
acba
样例输出
Aab
Aba
aAb
abA
bAa
baA
abc
acb
bac
bca
cab
cba
aabc
aacb
abac
abca
acab
acba
baac
baca
bcaa
caab
caba
cbaa
查看
提交
统计
提问
#include"iostream"
#include"cstring"
#include"algorithm"
using namespace std;
int help(char x)//需要自己定义help函数帮助实现大小字母如A,a,B,b.....的排序
{
if(x>='a' && x<='z') return (x-'a')*2+2;
else return (x-'A')*2+1;
}
bool comp(char x, char y)
{
return help(x)<help(y);
}
int main()
{
int num;
cin>>num;
char test[13];
int len;
while(num--)
{
cin>>test;
len=strlen(test);
sort(test,test+len,comp);
do
{
cout<<test<<endl;
}while(next_permutation(test,test+len,comp));
}
}
相关文章推荐
- POJ 1256 Anagram(next_permutation全排列)
- poj 1256 next_permutation
- poj 1256 按一定顺序输出全排列(next_permutation)
- next_permutation,POJ(1256)
- poj 1256 Anagram—next_permutation的神奇应用
- POJ - 1256 再次熟悉next_permutation
- POJ 题目1256 Anagram(next_permutation)
- poj1256 Anagram (next_permutation())
- POJ1256 Anagram STL中的next_permutation()
- POJ 1256 Anagram【生成有重集的全排列2.0】
- next_permutation暴力搜索,POJ(3187)
- poj 2629 Common permutation
- POJ 题目Backward Digit Sums(next_permutation)
- poj 1256 Anagram
- POJ 1731:Orders next_permutation
- poj1256 Anagram
- poj 1256 Anagram
- poj 1256(搜索)
- POJ 2629 Common permutation(水~)
- 【poj】2718全排列next—permutation