我试图找到最出现字符数组以下算法中的数组最出现的字符:发现在焦炭
char a[]={"aaaadddddaa"};
int max=0;
int count=0;
char maxCharcter;
for(char q='a';q<='z';q++)
{
for(int i=0; i<strlen(a);i++)
{
if(a[i]==q)
count++;
}
if(count>max)
{
max=count;
maxCharcter=q;
}
}
cout<<max<<endl;
cout<<maxCharcter<<endl;
输出应该是max=6 maxCharcter=a
,但我得到max=11 maxCharcter=d
。我究竟做错了什么?
请注意,虽然这有效(一旦纠正),但效率非常低。有一个更有效的算法。 – 2012-07-08 16:56:27
'std :: unique'和'std :: count'的组合会比重新发明轮子更好。 – chris 2012-07-08 17:20:34