您的位置:首页 > 其它

【初级算法】14. 字符串中的第一个唯一字符

2018-05-03 13:12 381 查看

题目:

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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;

}
};

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐