首页 > 代码库 > 第一个只出现一次的字符
第一个只出现一次的字符
在字符串中找出第一个只出现一次的字符。如输入:“aabcdc”,则输出b 。
思路:我们可以把数组当做一个简单的哈希表来用,把每个字母的ASCII码值作为在数组中的位置(下标),数组中存储的是该字符出现的次数。这样我们就创建了一个以字符ASCII码为健值的哈希表。
具体代码如下:
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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。