剑指OFFER 第一个只出现一次的字符

Posted virgil_devil

tags:

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

剑指OFFER 第一个只出现一次的字符

STL map解法

使用STL的map函数,可能内存占用会大一些

class Solution {
public:
    map<int,int> m;
    int FirstNotRepeatingChar(string str) {
        if(str.size()==0)return -1;
        for(int i=0;i<str.size();i++)
        {
            m[str[i]]++;
        }
        for(int i=0;i<str.size();i++)
        {
            if(m[str[i]]==1)return i;
        }
        return -1;
    }
};

手写字符hash解法

手动实现字符的映射,hash的一种简单实现方法

class Solution {
public:
    int m[256] = {0};
    int FirstNotRepeatingChar(string str) {
        if(str.size()==0)return -1;
        for(int i=0;i<str.size();i++)
        {
            m[str[i]]++;
        }
        for(int i=0;i<str.size();i++)
        {
            if(m[str[i]]==1)return i;
        }
        return -1;
    }
};

两种方法的思路实际是一模一样的

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

剑指Offer-第一个只出现一次的字符位置

剑指Offer——第一个只出现一次的字符

剑指offer-第一个只出现一次的字符

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

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

剑指offer34:第一个只出现一次的字符的位置