码迷,mamicode.com
首页 > 其他好文 > 详细

第一个只出现一次的字符

时间:2014-05-14 22:41:18      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

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

思路:我们可以把数组当做一个简单的哈希表来用,把每个字母的ASCII码值作为在数组中的位置(下标),数组中存储的是该字符出现的次数。这样我们就创建了一个以字符ASCII码为健值的哈希表。

具体代码如下:

bubuko.com,布布扣
 1 char FirstNotRepeatingChar(char* pstr)
 2 {
 3     if (pstr == NULL)
 4     {
 5         return \0;
 6     }
 7     const int HashTableSize = 256 ;
 8     int HashTable[HashTableSize] ;
 9 
10     for (int i = 0 ; i < HashTableSize ; i++)
11     {
12         HashTable[i] = 0 ;
13     }
14     char* pHashKey = pstr ;
15     while ( *pHashKey != \0)
16     {
17         HashTable[*(pHashKey++)]++ ;
18     }
19     pHashKey = pstr ;
20     while (*pHashKey != \0)
21     {
22         if (HashTable[*pHashKey] == 1)
23         {
24             return *pHashKey ;
25         }
26         pHashKey++ ;
27     }
28     return \0;
29 }
bubuko.com,布布扣

 

第一个只出现一次的字符,布布扣,bubuko.com

第一个只出现一次的字符

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/csxcode/p/3728594.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!