xtuoj 字符串
题目
思路
基于这句话,我想到可以用在线处理的思路,先把字符串读进来,然后逐个处理单个字符,用一个频度数组记录字符出现频度,然后首先初始化max=0,用来记录当前出现的最大频度,然后再用b记录该最大频度对应的字符(映射到数字),比较当前处理的字符频度与最大频度的关系,这里我采用的是if(f>max),因为题目说到如果多个字符数量相同,则采用最早的那个,但是如果题目说采用的是最晚出现的那个,则我们需要改为if(f>=max),然后再把b还原成字符(+'a'),就解决了。
代码
#include<stdio.h>
#include<string.h>char s[1005];int main(){while(~scanf("%s",s)){int len=strlen(s);int max=0;int f[26]={0};int b=0;for(int i=0;i<len;i++){f[s[i]-'a']++;if(f[s[i]-'a']>max){max=f[s[i]-'a'];b=s[i]-'a';}printf("%c",b+'a');}printf("\n");}return 0;
}