前往此题

解题思路

这题相对比较简单,可以通过哈希表法来解决。题目中我们需要找出第一个只出现一次的字符,也就是说我们需要统计每个字符出现的次数,然后再遍历一遍找到出现次数为1的字符即可。

算法思路

  1. 遍历字符串,将每个字符存入哈希表中作为,值默认为True
  2. 同时检查哈希表,遇到重复的则将值改为False
  3. 最后再遍历一遍字符串,返回第一个在哈希表中值为True的键
  4. 如果没有就返回' '

代码

class Solution:
    def firstUniqChar(self, s: str) -> str:
        hashmap = {}
        for c in s:
            hashmap[c] = not c in hashmap
        for c in s:
            if hashmap[c]: return c
        return " "

复杂度分析

时间复杂度 : O(N) 遍历两遍

空间复杂度: O(1)