先排序完後,利用next_permutation即可得解。
C++(0.029)
/*******************************************************/
/* UVa 10098 Generating Fast */
/* Author: Maplewing [at] knightzone.studio */
/* Version: 2015/05/07 */
/*******************************************************/
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdio>
using namespace std;
int main(){
int n;
while( scanf("%d", &n) != EOF ){
string input;
for( int i = 0 ; i < n ; ++i ){
cin >> input;
sort(input.begin(), input.end());
do{
printf("%s\n", input.c_str());
} while( next_permutation(input.begin(), input.end()) );
printf("\n");
}
}
return 0;
}