第一个只出现一次的字符

来源:互联网 发布:c语言项目开发 编辑:程序博客网 时间:2024/05/20 22:00

思路:用一个256个字符的数组建成一个hash,记录每一个字符出现的次数,之后依次扫描字符串找hash中第一个个数为1的即可。

代码:

#include <assert.h>#include <iostream>using namespace std;//创建一个包含256个字符的数组作为哈希表char FirstNotRepeatintChar(char* pString){if (pString == NULL){return '\0';}const int tableSize = 256;unsigned int hashTable[tableSize];for (unsigned int i = 0; i < tableSize; ++i){hashTable[i] = 0;}char* pHashString = pString;while ((*pHashString) != '\0') {hashTable[*pHashString]++;        pHashString++;}pHashString = pString;char firstNotRepeating = '\0';while ((*pHashString) != '\0'){if (hashTable[*pHashString] == 1){firstNotRepeating = *pHashString;break;}pHashString++;}return firstNotRepeating;}int main(){char* pString = new char[20];cout<<"input string:";cin>>pString;    char firstNotRepeatingStr = FirstNotRepeatintChar(pString);cout<<"First not repeating char: "<<firstNotRepeatingStr<<endl;}


0 0
原创粉丝点击