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

面试题35:第一个只出现一次的字符

2013-07-20 21:37 246 查看
题目:在字符串中中找到第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。

思路:利用hash表,遍历一遍,并记录次数,hash表自己构建,一个字符8bit,最大为256,所以可设hashTable[256];

源代码:

#include "stdio.h"
char FirstNotRepeat(char *ch)
{
if(ch == NULL)
return '\0';
int hashTable[256];
for(int i=0;i<256;i++)
hashTable[i]=0;
char *p=ch;
while(*p != '\0')
{
hashTable[*(p++)]++;
}
p=ch;
while(*p != '\0')
{
if(hashTable[*p]==1)
return *p;
p++;
}
return '\0';
}
void main()
{
char c[50];
gets(c);
char result =FirstNotRepeat(c);
printf("result:%c",result);
}

结果:
abaccdeff
result:bPress any key to continue
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: