问题描述:
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.
题目大意基数寻找一个字符串的第一个只出现一次的字符,返回其下标。解决方法:哈希表。
注意点:
1.输入字符为空时返回-1。
2.字符串中不存在只出现一次的字符时返回-1。
AC代码:
int firstUniqChar(string s)
{
if(s.empty())
return -1;
int res = -1;//考虑到字符串中不存在只出现一次的字符
int hash[256] = {0};
for(int i =0;i < s.length();i++)
{
hash[s[i]]++;
}
for(int i =0;i<s.length();i++)
{
if(hash[s[i]] == 1)
{
res = i;
break;
}
}
return res;
}