跳至主要內容

剑指 Offer 50. 第一个只出现一次的字符

ITCharge小于 1 分钟

剑指 Offer 50. 第一个只出现一次的字符open in new window

  • 标签:队列、哈希表、字符串、计数
  • 难度:简单

题目链接

题目大意

给定一个字符串 s

要求:从字符串 s 中找到第一个只出现一次的字符。如果没有,则返回空格

解题思路

遍历字符串 s,使用哈希表存储每个字符频数。

再次遍历字符串 s,返回第一个频数为 1 的字符。

代码

class Solution:
    def firstUniqChar(self, s: str) -> str:
        dic = dict()
        for ch in s:
            if ch in dic:
                dic[ch] += 1
            else:
                dic[ch] = 1

        for ch in s:
            if ch in dic and dic[ch] == 1:
                return ch
        return ' '