题目描述

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。如果当前字符流没有存在出现一次的字符,返回#字符。

思路

和前面的那道字符串中只出现一次的字符相似而不相同,前面那道是固定长度字符串,而本题是字符流,也就是会增长的,每次字符串多一个字符,就要重新判断是哪个只出现一次的字符

因为牛客网里剑指offer的python只有2.7,没有3.0以上的版本,而python2.7的字典遍历通常不是有序的(python3通常有序),所以只能再借助一个列表来存储全部字符串,遍历字符串从而寻找

解答

class Solution:# 返回对应chardef __init__(self):self.charDict = {}#存放字符和对应的数量self.charlist = []#存放字符def FirstAppearingOnce(self):# write code herefor key in self.charlist:if self.charDict[key]==1:return keyreturn '#'def Insert(self, char):# write code hereself.charDict[char]=1 if char not in self.charDict else self.charDict[char]+1self.charlist.append(char)

其实再想一下,把字典去掉也完全可以啊,这跟那道固定长度的只出现一次字符串没有本质的区别

class Solution:# 返回对应chardef __init__(self):self.charlist = []def FirstAppearingOnce(self):# write code herefor key in self.charlist:if self.charlist.count(key)==1:return keyreturn '#'def Insert(self, char):# write code hereself.charlist.append(char)

转载于:https://www.cnblogs.com/yqpy/p/9569448.html

剑指offer——python【第54题】字符流中第一个不重复的字符相关推荐

  1. 剑指offer——面试题55:字符流中第一个不重复的字符

    剑指offer--面试题55:字符流中第一个不重复的字符 Solution1: 当年第一次做这个题的做法 对此题最大的感想是: 1)区分deque(双端队列)和queue(队列): 2)要熟悉queu ...

  2. 《剑指offer》-- 第一个只出现一次的字符、数组中只出现一次的数字、字符流中第一个不重复的字符、数组中重复的数字

    一.第一个只出现一次的字符: 1.题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写 ...

  3. 【剑指offer-54】20190907/03 字符流中第一个不重复的字符

    [剑指offer-54]字符流中第一个不重复的字符 考点:字符串 时间限制:1秒 空间限制:32768K 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符&qu ...

  4. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...

    推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...

  5. 剑指offer:字符流中第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  6. [剑指offer] 字符流中第一个不重复的字符

    本文首发于我的个人博客:尾尾部落 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是" ...

  7. 《剑指offer》字符流中第一个不重复的字符

    题目:请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出前六 ...

  8. (剑指Offer)面试题55:字符流中第一个不重复的字符

    题目: 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出前 ...

  9. 剑指offer之字符流中第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

最新文章

  1. 理解javascript中的回调函数(callback)【转】
  2. 解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes
  3. iOS UIWebView URL拦截
  4. 微课|中学生可以这样学Python(例11.3):tkinter通信录管理系统4
  5. SpringCloud学习笔记008---杂七杂八002_spring 注解@Value详解_@Value(quot;#{}quot;)与@Value(quot;${}quot;)的区别
  6. 交换机的 VTP sever 与 client设置
  7. ASP/COM+组件开发辅助软件之补充
  8. rsa 网站openssl加密解密 使用心得
  9. java水果类用equal重量价格,Java基础练习题 附答案
  10. 神舟t6ti-x5刷蓝天新版BIOS教程 可提升0.5G睿频 模具N85xHKx/HJx
  11. QQ文件中转站 发送给好友的功能 哪去了?
  12. 利用tusharepro进行投资组合优化
  13. AXD 调试经验,使用及问题
  14. Mapbox矢量切片本地化(离线)生成与发布方案
  15. 【词性标注】一篇文章弄懂词性标注
  16. ShareX的使用说明
  17. 微信打不开文件怎么办
  18. BOOT ROM 初始化内容、启动设备、镜像烧写
  19. 你必须要知道CNN模型:ResNet
  20. MySQL 同时删除和添加多个字段

热门文章

  1. 【06年博文搬家】一个修改时间的批处理程序
  2. 《深入学习 Golang》并发编程
  3. 2021总结-》2022年
  4. 白皮书 | 以太坊 (Ethereum ):下一代智能合约和去中心化应用平台
  5. [转]python进阶到高阶大全
  6. notepad++行首行尾添加字符
  7. map函数的用法python,详解Python map函数及Python map()函数的用法
  8. 活用这25种图表效果,你的数据可视化也能变得高级炫酷!
  9. c语言浮点型常量表示平均数_数据类型与常量、变量解析
  10. mysql免安装版配置百度_mysql -5.7.10 免安装版配置