第一个仅仅出现一次的字符 代码(C)
本文地址: http://blog.csdn.net/caroline_wendy
题目: 在字符串中找出第一个仅仅出现一次的字符.
字符是char类型, 所以匹配256种可能, 採用hash表, 计算出现的次数, 再找到第一次出现的字符.
代码:
/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike
*/ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h>
#include <stdlib.h>
#include <string.h> char FirstNotRepeatingChar (char* pString) {
if (pString == NULL)
return '\0';
const int tableSize = 256;
unsigned int hastTable[tableSize];
for (unsigned int i=0; i<tableSize; ++i)
hastTable[i] = 0;
char* pHashKey = pString;
while (*pHashKey != '\0')
hastTable[*(pHashKey++)]++;
pHashKey = pString;
while (*pHashKey != '\0') {
if (hastTable[*pHashKey] == 1)
return *pHashKey;
pHashKey++;
}
return '\0';
} int main(void)
{
char pString[] = "abaccdeff";
char result = FirstNotRepeatingChar (pString);
printf("result = %c\n", result); return 0;
}
输出:
result = b