用了哈希表的思想,但最后一个测试点一直没过,为什么啊啊啊啊啊
#include <cstdio>
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
int hash_table[6];
int change(char c){
if (c == 'P') {
return 0;
}else if (c == 'A')
return 1;
else if (c == 'T')
return 2;
else if (c == 'e')
return 3;
else if (c=='s')
return 4;
else if (c == 't')
return 5;
return -1;
}
int main(){
// printf("hello\n");
char word[] = {'P','A','T','e','s','t'};
memset(hash_table, 0, sizeof(hash_table));
char str[1010];
cin.getline(str, 1010);
int count = 0;
for (int i=0; i<strlen(str); i++) {
int id = change(str[i]);
if(id != -1){
hash_table[id]++;
count++;
}
}
while(count){
for (int i=0; i<=5; i++) {
if (hash_table[i]) {
printf("%c",word[i]);
hash_table[i]--;
count--;
}
}
}
}