题目:Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
难度:Easy
解题思路:比较容易想到的方法是用哈希表,先遍历一遍字符串,因为只有26个小写字母,开一个大小为26的数组a,对每一个扫到的字母,a[s[i]-'a']++,这样可以记录每个字母出现的次数,再遍历一遍字符串,找出a[s[i]-'a']=1的下标i,这种做法时间复杂度为O(n)
class Solution {
public:
int firstUniqChar(string s) {
int stre=s.size();
int a[26]={0};
int ans=-1;
for(int i = 0;i<s.size(); i++)
{
int x=s[i]-'a';
a[x]++;
}
for(int i = 0; i<s.size() ;i++)
{
if(a[s[i]-'a']==1)
{
ans=i;
break;
}
}
return ans;
}
};