初级算法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字符串中的第一个唯一字符

算法刷题:LC初级算法

算法刷题:LC初级算法

100天算法入门 - 每日三题 - Day14两个数组的交集有效的完全平方数字符串中的第一个唯一字符

前端与算法 leetcode 387. 字符串中的第一个唯一字符