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

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

Difficulty: 简单

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

示例:

s = "abaccdeff"
返回 "b"

s = "" 
返回 " "

限制:

0 <= s 的长度 <= 50000

Solution

题目中的关键是第一个出现只出现一次的字符,那么考察的点一般就是哈希表,Python3.6之后字典是默认有序的,第一次遍历字符串记录字符是否出现多次,第二次遍历哈希表时返回第一个只出现一次的字符。

class Solution:
    def firstUniqChar(self, s: str) -> str:
        if not str:
            return ' '
        # python3.6之后字典默认是有序的
        d = {}
        for char in s:
            d[char] = True if char in d else False
        for k, v in d.items():
            if not v:
                return k
        return " "
posted @ 2021-03-13 15:41  swordspoet  阅读(37)  评论(0编辑  收藏  举报