Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
Examples:
s = "leetcode" return 0. s = "loveleetcode", return 2.
Note: You may assume the string contain only lowercase letters.
class Solution {
public:
int firstUniqChar(string s) {
if(s.length()==0)
return -1;
int index[256] ;
for(int i=0; i<256; i++)
index[i] = -1;
int idx = 0;
for(int i=0; i<s.length(); i++)
{
if(index[s[i]]==-1)
{
index[s[i]] = idx;
}else
{
index[s[i]] = -2;
}
idx++;
}
int min = INT_MAX;
for(int i=0; i<256; i++)
{
if(index[i]>=0&&index[i]<min)
min = index[i];
}
return min==INT_MAX? -1 : min;
}
};