1043 输出PATest (20 分)
题目链接
算法分析
依次读入字符串,用一个栈数组存下各个字母出现的次数,然后再用两层循环输出结果。
代码实现
#include<bits/stdc++.h>
using namespace std;
#define N 300
char pat[10] = {'P', 'A', 'T', 'e', 's', 't'};
int cnt[N];
int main(){
string s;
cin>> s;
int len = s.size();
for(int i = 0; i < len; ++ i)
cnt[(int)s[i]] ++;
bool flag = 1;
while(flag){
flag = 0;
for(int i = 0; i <= 5; ++ i){
if(cnt[(int)pat[i]]){
flag = 1;
cnt[(int)pat[i]] --;
printf("%c", pat[i]);
}
}
}
return 0;
}