面试题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
思路:利用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
相关文章推荐
- 【剑指offer】面试题35-第一个只出现一次的字符
- 剑指offer 面试题35—第一个只出现一次的字符
- 剑指offer 面试题35 字符串中第一个出现一次的字符
- 面试题35:第一个只出现一次的字符
- 面试题 35: 第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 剑指offer--面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 剑指Offer系列-面试题35:第一个只出现一次的字符
- 【剑指Offer学习】【面试题35:第一个只出现一次的字符】
- 面试题35:第一个只出现一次的字符
- 剑指offer——面试题35:第一个只出现一次的字符(哈希)
- 面试题35:第一个只出现一次的字符
- 剑指Offer 面试题35:第一个只出现一次的字符 解题报告(华为OJ034-找出字符串中第一个只出现一次的字符)
- 【面试题】剑指Offer-35-第一个只出现一次的字符
- 剑指Offer----面试题35:第一个只出现一次的字符
- 剑指Offer_面试题35_第一个只出现一次的字符
- 剑指offer-面试题35:第一个只出现一次的字符
- 面试题35:第一个只出现一次的字符
- 剑指offer-面试题35-第一个只出现一次的字符