字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = “leetcode”
返回 0
s = “loveleetcode”
返回 2
提示:你可以假定该字符串只包含小写字母。
想用异或查找但是想不出来,不知道有没有大佬知道
class Solution {
public:
int firstUniqChar(string s) {
char a[26];//建立26字母的哈希表
for(int i=0;i<26;i++)
{
a[i]=0;//初始化为0
}
// printf("%d",'a');
for(int i=0;i<s.size();i++)
{
// cout<<s[i]-97<<endl;
if(a[s[i]-97]==0)
{
a[s[i]-97]=s[i];//将s中的数据放入散列表
}
else
{
a[s[i]-97]='A';
}
}
// for(int i=0;i<26;i++)
// cout<<a[i];
// cout<<1234<<endl;
for(int i=0;i<s.size();i++)
{ if(!(a[s[i]-97]=='A'))//查找
return i;
}
return -1;
}
};