您的位置:首页 > 职场人生

求出字符串中出现次数最多字符--一道面试题

2012-03-07 19:43 309 查看
看见一帖子面试题,求字符串中出现次数最多的字符,并获得其第一次出现的位置,题目很简单,我用一个128的数组,记录字符出现的次数,运用位图的思想解决此问题。

代码如下:

#include <stdio.h>
#include <string.h>
#define MAX 128

int bitmap[MAX];

char find(int *x, char *str)
{
int i = 0, max = 0;
char p;
memset(bitmap, 0, sizeof(bitmap));
for (; i < strlen(str); i++)
bitmap[str[i] - '0'] += 1;

for (i  = 0; i < MAX; i++)
if (bitmap[i] > max)
{
max = bitmap[i];
p = i + '0';
}
for (i = 0; i < strlen(str); i++)
if (str[i] == p)
{
*x = i;
break;
}
return p;
}

int main(void)
{
char *str = "aabbccaaBBBBcccccBbbbcccccb";
int x;
printf("%c %d", find(&x, str), x + 1);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐