解题思路
这题相对比较简单,可以通过哈希表法来解决。题目中我们需要找出第一个只出现一次的字符,也就是说我们需要统计每个字符出现的次数,然后再遍历一遍找到出现次数为1的字符即可。
算法思路
- 遍历字符串,将每个字符存入哈希表中作为键,值默认为
True
- 同时检查哈希表,遇到重复的则将值改为
False
- 最后再遍历一遍字符串,返回第一个在哈希表中值为
True
的键 - 如果没有就返回
' '
代码
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)