题目
源地址:
http://poj.org/problem?id=1256
理解
再次遇到一道使用next_permutation
的题目,不过这一次需要针对题目的给出的条件重新写一个cmp
函数。
代码
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
bool cmp(char a, char b)
{
if (tolower(a) == tolower(b))
return a < b;
else
return tolower(a) < tolower(b);
}
int main()
{
int t;
cin >> t;
while (t--)
{
string str;
cin >> str;
sort(str.begin(), str.end(), cmp);
do
{
cout << str << endl;
}
while (next_permutation(str.begin(), str.end(), cmp));
}
return 0;
}
更新日志
- 2014年07月23日 已AC。