zoukankan      html  css  js  c++  java
  • 【初级算法】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;
    
        }
    };
  • 相关阅读:
    ios开发系列-准备工作
    tests
    腾讯DBA官方博客开通了,欢迎交流
    腾讯DBA官方博客开通了
    [HNOI2008]水平可见直线
    BZOJ-4518 征途
    CDQ分治与整体二分
    HYSBZ-1176 Mokia
    二逼平衡树
    可持久化数组
  • 原文地址:https://www.cnblogs.com/mikemeng/p/8984827.html
Copyright © 2011-2022 走看看