oj字符串,求助讨论帖
思路:标记法,记录每个字母出现次数,但第一次代码没有通过
初始代码
#include<stdio.h>
#include<string.h>
int main(){char s[1005];while(scanf("%s",s)!=EOF){char zm[27];for(int i=0;i<26;i++){zm[i]='a'+i;}//字母int t[27]={0};//标记字母出现个数int max=0;for(int i=0;i<strlen(s);i++){t[s[i]-'a']=t[s[i]-'a']+1;//出现最多的字母的序号for(int k=1;k<26;k++){if(t[max]<t[k]){max=k;}}printf("%c",zm[max]);}printf("\n");}
}
但是借鉴完更简洁的的方式后,又有了AC代码
#include<stdio.h>
#include<string.h>
int main(){char s[1005];while(scanf("%s",s)!=EOF){char zm[27];for(int i=0;i<26;i++){zm[i]='a'+i;}//字母int t[27]={0};//标记字母出现个数int max=0;for(int i=0;i<strlen(s);i++){t[s[i]-'a']=t[s[i]-'a']+1;//出现最多的字母的序号if(t[max]<t[s[i]-'a']){max=s[i]-'a';}printf("%c",zm[max]);}printf("\n");}
}
但还是求助一下,我原始代码哪里有问题?