
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
思路
本题要求解第一个不重复字符串出现的位置,可以使用hash来存放每个字母出现的次数
第一次遍历字符串,记录每个字符出现的次数。
第二次遍历字符串,找到第一个出现次数为1的字符下标。如果不存在,则返回-1。
代码
// C++ Versionclass Solution {public:int firstUniqChar(string s) {int mp[26] = {0};for(int i = 0; i < s.size(); i++){mp[s[i] - 'a']++;}for(int i = 0; i < s.size(); i++){if(mp[s[i] - 'a'] == 1){return i;}}return -1;}};
// Go Versionfunc firstUniqChar(s string) int {var mp [26]intfor i := 0; i < len(s); i ++{mp[s[i] - 'a']++;}for i := 0; i < len(s); i ++{if mp[s[i] - 'a'] == 1{return i;}}return -1;}
