剑指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 第一个只出现一次的字符的主要内容,如果未能解决你的问题,请参考以下文章