📜  资质 |门 IT 2006 |问题 9(1)

📅  最后修改于: 2023-12-03 15:41:49.921000             🧑  作者: Mango

资质认证门 IT 2006 问题 9

题目描述

在一个字符串中找到第一个只出现一次的字符。

解题思路

可以使用哈希表或字典来记录每个字符出现的次数,然后遍历一遍字符串,找到出现次数为一的字符即可。

也可以使用 Python 内置的 Counter 类来统计每个字符的次数,返回字符出现次数为一的第一个字符。

Python 代码演示
from collections import Counter

def first_unique_char(s: str) -> str:
    counts = Counter(s)
    for ch in s:
        if counts[ch] == 1:
            return ch
    return ''

# 示例
s1 = 'leetcode'
s2 = 'loveleetcode'
print(first_unique_char(s1)) # 输出 'l'
print(first_unique_char(s2)) # 输出 'v'
复杂度分析

时间复杂度:$O(n)$,其中 $n$ 是字符串的长度。

空间复杂度:$O(|\Sigma|)$,其中 $\Sigma$ 是字符串的字符集,存储最多 $|\Sigma|$ 个字符的出现次数。