兆芯笔试题(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;
}
posted @ 2017-04-25 20:24  llguanli  阅读(235)  评论(0编辑  收藏  举报