题目要求输出patest相关的信息,刚开始我考虑的是把每个数都记录一下,最后用if来判断,这样写代码会复杂很多,参考了晴神的做法,把这几个数据在里面的才记录,也就是只设置这样的数组,让字符数组和hash数组对应上,这个字符的用法我一直不熟悉,希望之后可以做到更好
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=10100;
int main()
{
char str[maxn],dic[6]={'P','A','T','e','s','t'};
int hashnum[6]={0};
cin.getline(str,maxn);
int len=strlen(str);
int total=0;
for (int i=0;i<len;i++)
{
for (int j=0;j<6;j++)
{
if (str[i]==dic[j])
{
hashnum[j]++;
total++;
break;
}
}
}
while(total>0)
{
for (int i=0;i<6;i++)
{
if(hashnum[i]!=0)
{
printf("%c",dic[i]);
hashnum[i]--;
total--;
}
}
}
}