pat-B1043-输出PATest
程序员文章站
2024-03-22 09:14:58
...
题目链接->link
思路
- 遍历str,避免多个if判断,设置字典dict[6]存储P,A,T,e,s,t,用int型hashmap[6]存储对于字符的数目,用sum存储总数。
- 进行sum次遍历hashmap输出对于字典的字母即可。
代码
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
using namespace std;
const int maxn=10005;
char str[maxn];
char dict[6]={'P','A','T','e','s','t'};//字典,避免多个if判断
int hashmap[6]={0};
int main(){
fgets(str, maxn, stdin);
int sum=0,len=strlen(str);
for(int i=0;i<len;i++){//遍历str[]
for(int j=0;j<6;j++){//遍历dict[]
if(str[i]==dict[j]){
hashmap[j]++;//对于字母数+1
sum++;//总数目+1
}
}
}
while(sum){//根据总数目输出
for(int i=0;i<6;i++){//遍历hashmap[]
if(hashmap[i]){
printf("%c",dict[i]);
hashmap[i]--;
sum--;
}
}
}
printf("\n");
return 0;
}
上一篇: 零基础学python-9.3 对象的比较
下一篇: shell命令之sed的应用