今天笔试,遇到一个题目要找出一个字符串中第一个不重复的字母,简单写了一下
#include <stdio.h>
void find(const char *str, char *result)
{
int count[128]={0}, pos[128]={0};
for (int i=0; str[i]!='\0'; i++)
{
int ascii = (int)(str[i]);
count[ascii]++;
if (pos[ascii] == 0)
{
pos[ascii] = i;
}
}
int min = 99999;
for (int i=0; i<128; i++)
{
if (count[i] == 1 && pos[i]<min)
{
*result = (char)i;
min = pos[i];
}
}
}
int main()
{
char *str = "teeter";
char result;
find(str, &result);
printf("%cn", result);
return 0;
}