本文共 842 字,大约阅读时间需要 2 分钟。
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
使用hash表保存字符是否只出现1次,由于python3.6之后的字典都是按照插入顺序有序的,所以直接遍历,并返回满足条件的第一个即可。
因为自python3.6开始字典其实是有序的了,所以可以直接遍历字典找到第一个只出现1次的字符。
class Solution: def firstUniqChar(self, s: str) -> str: """ """ record = dict.fromkeys(s, 0) for char in s: record[char] += 1 for k in record: if record[k] == 1: return k return " "
使用bool代替数字,节省空间。
class Solution: def firstUniqChar(self, s: str) -> str: """ 2. hash法,使用bool而不是数字,能够减少更多的运算和空间 """ record = { } for char in s: record[char] = char not in record for k in record: if record[k]: return k return " "
在算法中,熟练使用hash表能够有效帮助实现算法。
[1]
[2] [3]转载地址:http://ijsiz.baihongyu.com/