我有一个复杂的C程序,我只想写一个函数,它获取一个字符串作为参数.
int most_frequent(char *string)
Run Code Online (Sandbox Code Playgroud)
该函数必须返回字符串中最常用字符的编号.我试过这样的事情,但这是不正确的我认为:
int most_frequent(char *string){
int i, lenght;
lenght=strlen(string);
int max=0, x=0;
for(i=0;i<lenght;i++)
{
if(string[i]==string[i++])
{
x++;
}
if(max<x)
max=x;
}
return max;
}
Run Code Online (Sandbox Code Playgroud)
例如:"溢出" - 2"十一" - 3
我假设你有一个遵循ASCII的字符串.这样,每个char有256个可能的值.因此,我们计算每个的频率并返回最大的频率.
int most_frequent(char *string){
int count[256] = {0}; // Assum char is ASCII
int max = 0;
int i;
for(i=0; i < strlen(string) ;i++) {
count[(unsigned char)(string[i])] ++;
}
for(i=0; i < 256 ;i++) {
if (count[i] > max)
max = count[i];
}
return max;
}
Run Code Online (Sandbox Code Playgroud)