博客
关于我
剑指offer系列-面试题50. 第一个只出现一次的字符 (python)
阅读量:533 次
发布时间:2019-03-08

本文共 841 字,大约阅读时间需要 2 分钟。

文章目录

1. 题目

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

2. 解题思路

使用hash表保存字符是否只出现1次,由于python3.6之后的字典都是按照插入顺序有序的,所以直接遍历,并返回满足条件的第一个即可。

3. 代码实现

3.1 哈希表

因为自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 " "

3.2 优化

使用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 " "

4. 总结

在算法中,熟练使用hash表能够有效帮助实现算法。

5. 参考文献

[1]

[2]
[3]

转载地址:http://ijsiz.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(59)——数据库分库分表策略总结
查看>>
Mysql学习总结(5)——MySql常用函数大全讲解
查看>>
Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
查看>>
Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
查看>>
Mysql学习总结(62)——MySQL连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link问题
查看>>
Mysql学习总结(63)——Mysql数据库架构方案选择与分析
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(67)——MYSQL慢查询日志
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>
Mysql学习总结(70)——MySQL 优化实施方案
查看>>
Mysql学习总结(71)——MySQL 重复记录查询与删除总结
查看>>
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
查看>>
Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
查看>>
Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
查看>>
Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
查看>>
Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
查看>>