初级算法14. 字符串中的第一个唯一字符
Posted 且听疯吟吖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初级算法14. 字符串中的第一个唯一字符相关的知识,希望对你有一定的参考价值。
题目:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -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; } };
以上是关于初级算法14. 字符串中的第一个唯一字符的主要内容,如果未能解决你的问题,请参考以下文章
数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符
数据结构和算法LeetCode,初级算法-14字符串中的第一个唯一字符