• 每日leetcode-数组-387. 字符串中的第一个唯一字符


    分类:字符串-字符的统计

    题目描述:

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

    解题思路:

    使用哈希表存储频数

    我们可以对字符串进行两次遍历。

    在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回它的索引,否则在遍历结束后返回 -1−1。

    class Solution:
        def firstUniqChar(self, s: str) -> int:
            frequency = collections.Counter(s)
            for i, ch in enumerate(s):
                if frequency[ch] == 1:
                    return i
            return -1

    时间复杂度:O(n)其中 nn 是字符串 ss 的长度。我们需要进行两次遍历。

    空间复杂度:O(∣Σ∣),其中 SigmaΣ 是字符集,在本题中 ss 只包含小写字母,因此 |Sigma| leq 26∣Σ∣≤26。我们需要 O(|Sigma|)O(∣Σ∣) 的空间存储哈希映射。

  • 相关阅读:
    python 八进制数
    python hmac加盐
    python contextlib
    python hashlib
    python struct
    python namedtuple
    python datetime timezone 时区转化
    Android核心基础(手机卫士的一个知识点总结)
    TabHost结合RadioButton实现主页的导航效果
    Android SDK更新失败最新解决方案
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14930700.html
Copyright © 2020-2023  润新知