第一个只出现一次的字符

在字符串中找出第一只出现一次的字符,如输入“abaccdeff“,则输出b。

在这里讲解利用哈希表来解决的方法。因为题目简单所有这里的哈希表可以是用ASCII码为键值的数组。

下面是代码:

char FirstNotRepeatingChar(char* pString)
{
     if( pString == NULL)
         return '\0';

     const int tableSize = 256;
     unsigned int hashTable[tableSize];
     //初始化哈希表
     for(int i=0; i < tableSize ;++i )
         hashTable[i] = 0;

     //遍历整个字符串
     char*  pHashkey = pString;
     while( *pHashkey !='\0')
     {
         hashTable[*pHashkey] ++;
         pHashkey++;
     }

     pHashkey = pString;
     while( *pHashkey != '\0')
     {
         if( hashTable[*pHashkey] == 1)
             return *pHashkey;

         pHashkey++;
     }

     return '\0';
}

 

posted @ 2013-03-07 21:01  没离开过  阅读(122)  评论(0编辑  收藏  举报