哈希表-统计字符出现的次数
Posted ike_li
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哈希表-统计字符出现的次数相关的知识,希望对你有一定的参考价值。
第一个只出现一次的字符:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”则输出b
答案:由于题目出现了与字符出现次数相关。我们可以利用一个容器来存放每个字符出现的次数,也就是说这个容器的作用是把一个字符隐射成一个数字。所以我们利用哈希表。
#include <QCoreApplication> #include<iostream> #include<QDebug> char findOnlyOneChar(char *inputString) { if(inputString==NULL) { return ‘\0‘; } const int hashSize=256;//表示256个字符的Assic unsigned int hashTable[hashSize];//哈希容器 //初始化哈希数组 for(unsigned int i=0;i<hashSize;i++) { hashTable[i]=0; } char *inputString1=inputString; while(*(inputString1)!=‘\0‘) { //hashTable[*(inputString1++)]++; //hashTable[*(inputString1)] 如hastTable[‘a‘] ‘a‘会变成ascii码整数值97 hashTable[*(inputString1)]=hashTable[*(inputString1)]+1; inputString1++; } inputString1=inputString; while(*inputString1!=‘\0‘) { if(hashTable[*inputString]==1) { return *inputString; } inputString++; } return ‘\0‘; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); test(); std::cout<<findOnlyOneChar("abaccdeff"); system("pause"); return a.exec(); }
以上是关于哈希表-统计字符出现的次数的主要内容,如果未能解决你的问题,请参考以下文章