兆芯笔试题(2015)找反复数最多的字母的数量以及位置
样例:“aaaabcaa”,查找a则返回值为0。长度为4。
#include <iostream>
#include <stdio.h>using namespace std;
int find_max_repeat(char *str, char ch, int *len)
{
char *p=str;
int num(0),start(0);
while(*p!='\0')
{
if(*p==ch){
int s=(p-str),k=0;
while(*p==ch)
{
++p;
++k;
}
if(k>num){
num=k;
start=s;
}
}
else
++p;
}
*len=num;
return start;
}
int main()
{
char str[]="abaacdeeeeesceebd";
int i,j;
i=find_max_repeat(str, 'a', &j);
printf("%d,%d\n",i,j);
i=find_max_repeat(str, 'e', &j);
printf("%d,%d\n",i,j);
return 0;
}