字符串中第一个只出现一次的字符。
在字符串中找到第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。
思路:那么我们知道有一种神奇的算法是能够在O(1)时间内找到结果,没错,它就是牛逼的哈希表。
那么看下C++下对这道题的实现:
char FirstNotRepeatingChar(char* pString)
{
if(pString==nullptr)
return '\0';
const int tableSize=256;
unsigned int hashTable[tableSize];
for(unsigned int i=0;i<tableSize;++i)
hashTable[i]=0;
char* pHashKey=pString;
while(*(pHashKey)!='\0')
hashTable[*(pHashKey++)]++;
pHashKey=pString;
while(*pHashKey!='\0')
{
if(hashTable[*pHashKey]==1)
return *pHashKey;
pHashKey++;
}
return '\0';
}