剑指 Offer 50. 第一个只出现一次的字符
用哈希表辅助查找
题目链接-来源:力扣(LeetCode)
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
示例:
s = “abaccdeff”
返回 “b”s = “”
返回 “ “
思路:
遍历字符串,将出现过的字符存入哈希表中,并配以一个 boolean 状态值记录其是否只出现过一次。再次出现以后就将这个值改为 false。完成以后我们再次遍历字符串,找到键值为 true 的字符返回即可。否则返回 ‘ ‘。
进一步优化:
若语言支持有序哈希表,则第二步只需遍历哈希表。
时间复杂度:O(n)
空间复杂度:O(1)
实现:
1 | class Solution { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.