0
已解决
刘景程
新手光能
新手光能
#include<bits/stdc++.h>
using namespace std;
int main()
{
string p;
cin>>p;
int i,a[26],max=-1,index;
memset(a,0,sizeof(a));
for(i=0;i<p.size();++i)
a[p[i]-'a']++;
for(i=0;i<26;++i)
if(a[i]!=0&&a[i]>max)
{
index=i;
max=a[i];
}
cout<<(char)(index+'a')<<" "<<max;
}
我哪错了???????????????????
总是90
第七个测试点错了!!!!!!!!!!
刘景程在2018-03-28 20:41:58追加了内容
你能把第7个测试点的数据告诉我吗
0
已采纳
马佳滢
新手天翼
新手天翼
我来告诉你为什么错了(我没有看出来你的错误在哪里)
比如说,输入"awwa",你是输出"a"还是"w"?当然是a!
因为如有多个频次相同的字母,取在字符串中最先出现的字母
是"a"先出现还是"w"先出现?"a"呀.
可是问题来了,照你的算法写(我们来写个流程)
首先,记a次数的计数器记录一次,(+1)max=1;
接着,记w次数的计数器记录一次,又记录一次(+2)max=2;
记a次数的计数器又记录一次,(+1)这时a次数的计数器也是2,可是ta等于max的值啊?
于是你输出的就是"w 2",第七个测试点就这样错了
0
0