本文共 609 字,大约阅读时间需要 2 分钟。
题目
在字符串s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。s 只包含小写字母。 解题思路
使用哈希表保存字符是否只出现一次。在Python中,字典(dict)在3.6及以上版本中是有序的,所以直接遍历字典找到第一个符合条件的字符即可。 代码实现
使用哈希表记录字符出现次数。如果使用数字来记录,需要遍历字符然后更新计数,再在字典中查找计数为1的字符。为了节省空间,可以使用布尔值来代替数字,这样可以减少内存占用并使代码更简洁。class Solution: def firstUniqChar(self, s: str) -> str: record = {} for char in s: record[char] = char not in record # 否定逻辑将布尔代替了数字 for k in record: if record[k]: return k return " " 代码优化
使用布尔值代替数字,可以更加节省空间。这种方法不仅提高了代码的效率,还减少了内存的占用。总结
在算法中,熟练使用哈希表能够有效地帮助实现算法。如果能够熟练掌握哈希表的应用,那么在解决类似的问题时就能够更加高效。参考文献
(无具体文献需求)转载地址:http://ijsiz.baihongyu.com/