给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符,返回 -1。
样例
给出字符串 s = "lintcode",返回 0。
给出字符串 s = "lovelintcode",返回 2。
解题思路:
将字符装进哈希表中,key值存入字符,value存入出现次数。然后再依次遍历,返回次数为1的字符。
class Solution {
public:
/**
* @param s: a string
* @return: it's index
*/
int firstUniqChar(string &s)
{
// write your code here
unordered_map<char,int> m;
for(char i : s)
++m[i];
for(int i=0;i<s.size();i++)
{
if(m[s[i]]==1)
return i;
}
return -1;
}
};
本文介绍了一种使用哈希表来解决寻找字符串中首个不重复字符的问题的方法。通过两次遍历字符串,第一次遍历记录每个字符出现的次数,第二次遍历找到第一个只出现一次的字符并返回其下标。

被折叠的 条评论
为什么被折叠?



