题目:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: s = "leetcode" 返回 0. s = "loveleetcode", 返回 2. 注意事项:您可以假定该字符串只包含小写字母。
1.解题思路:
关于本题解题思路很简单,直接统计相关的26个英文字母的个数即可,非常简单。
typedef struct counter{ int id; int cnt; }counter; class Solution { public: int firstUniqChar(string s) { counter mycnt[26]; int minRes = s.size(); /*intial*/ memset(mycnt,0,sizeof(counter)*26); for(int i = 0;i < s.size();++i){ mycnt[s[i]-'a'].id = i; mycnt[s[i]-'a'].cnt += 1; } for(int i = 0;i < 26; ++i){ if(mycnt[i].cnt == 1){ minRes = min(mycnt[i].id,minRes); } } if(minRes == s.size()){ return -1; } return minRes; } };