zoukankan      html  css  js  c++  java
  • 【LeetCode & 剑指offer刷题】字符串题1:50 第一个只出现一次的字符(387. First Unique Character in a String)

    【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...)

    387. First Unique Character in a String

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.
    Examples:
    s = "leetcode"
    return 0.
     
    s = "loveleetcode",
    return 2.
    Note: You may assume the string contain only lowercase letters.
     
    //O(n), 以空间来换时间
    class Solution
    {
    public:
        int firstUniqChar(string s)
        {
           unordered_map<char, int> m; //也可直接用一个数组
           for(auto& c:s) //基于范围的for循环
            {
                m[c]++;
            }//若用数组来做统计表,由于是定长的(对普通字符,256长度),可以看做空间复杂度为O(1)
           /* for(int i = 0;i<s.size();i++)
            {
                m[s[i]]++;
            }*/
          
            for(int i = 0;i<s.size();i++)
            {
                if(m[s[i]]==1) return i;
            }
          
            return -1;
        }
    };
     
     
  • 相关阅读:
    字符串哈希
    codeforces#766 D. Mahmoud and a Dictionary (并查集)
    莫比乌斯反演模板
    马拉车模板
    codeforces#580 D. Kefa and Dishes(状压dp)
    1076E
    448C
    543A
    295B
    poj3974 Palindrome
  • 原文地址:https://www.cnblogs.com/wikiwen/p/10224787.html
Copyright © 2011-2022 走看看