#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;
string s;
char A[15];
int n;
void print_permutation(int cur, int len, string &s){
if(cur == len){
for(int i = 0; i < len; ++i)
printf("%c", A[i]);
printf("\n");
}
else{
for(int i = 0; i < len; ++i){ // 尝试将s[i]加入到A[cur]中;
if(!i || s[i] != s[i - 1]){
int c1 = 0, c2 = 0;
for(int j = 0; j < cur; ++j) if(A[j] == s[i]) c1++; //统计在A数组中目前s[i]出现的次数;
for(int j = 0; j < len; ++j) if(s[j] == s[i]) c2++; //统计在s中s[i]出现的次数;
if(c1 < c2){
A[cur] = s[i];
print_permutation(cur + 1, len, s);
}
}
}
}
}
int main()
{
while(cin >> n){
for(int i = 0; i < n; ++i){
cin >> s;
int len = s.size();
sort(s.begin(), s.end());
print_permutation(0, len, s);
printf("\n");
}
}
}
uva 10098
最新推荐文章于 2022-01-16 16:13:21 发布