剑指offer-面试题50-第一个只出现一次的字符-哈希表

Posted buaazhhx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-面试题50-第一个只出现一次的字符-哈希表相关的知识,希望对你有一定的参考价值。

/*
题目:
	求字符串第一个只出现一次的字符。
*/
/*
思路:
	使用map遍历两次,第一次计数,第二次找到计数为1的第一个字符。
*/
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>


using namespace std;


char FirstNotRepeatingChar(string str){
    map<char,int> myMap;
    int len = str.size();
    if(len == 0) throw("invalid parameter");

    for(int i = 0; i < len; i++){
        if(myMap.count(str[i])){
            myMap[str[i]]++;
        }else{
            myMap[str[i]] = 1;
        }
    }

    for(int i = 0; i < len; i++){
        if(myMap[str[i]] == 1){
            return str[i];
        }
    }


}

int main(){
    string str="abaccdeff";
    cout<<FirstNotRepeatingChar(str);

    return 0;
}

    

以上是关于剑指offer-面试题50-第一个只出现一次的字符-哈希表的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 面试50题

[剑指offer]面试题35:第一个只出现一次的字符

剑指Offer---面试题35:第一个只出现一次的字符

剑指Offer--第50题 第一次只出现一次的字符

《剑指offer》第五十题II:字符流中第一个只出现一次的字符

《剑指offer》第五十题I:字符串中第一个只出现一次的字符