求一串字符串里面出现最多的字符
2017-09-23 本文已影响0人
blue__sky
一个字符串中可能包含a~z中多个字符串,并且可能会有重复,求出出现次数最多的字母,并且求出次数,
如果出现最多次数的字母不唯一,按照字母在字符串中出现的顺序,把所有结果打印出来,用换行符将每一行的字母和次数分开
样例输入
abcabd
样例输出
a 2
b 2
代码如下:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s,z;
char a[26];
int b[26],j=0,num=0,sum=0,su=0,d[26],c[26];
cin>>s;
while(s[j++])
num++;
for(int i=0;i<26;i++)
{
a[i]='a'+i;
}
for(int i=0;i<26;i++)
{
b[i]=0;
c[i]=0;
d[i]=0;
}
int m=0;
for(int i=0;i<num;i++)
{
m=int(s[i])-97;
b[m]++;
if(b[m]==1)
{
z[su]=s[i];
su++;
}
}
int max=0;
max=b[0];
for(int i=1;i<26;i++)
if(max<b[i])
max=b[i];
for(int i=0;i<26;i++)
if(max==b[i])
{
c[sum]=i+97;
sum++;
}
for(int i=0;i<su;i++)
for(int k=0;k<sum;k++)
if(int(z[i])==c[k])
cout<<z[i]<<' '<<b[int(z[i])-97]<<endl;
return 0;
}