Python :字符流中第一个不重复的字符
来源:互联网 发布:数据库管理系统开发 编辑:程序博客网 时间:2024/05/01 06:51
牛客网上的剑指 offer的在线编程:
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符
# -*- coding:utf-8 -*-class Solution: # 返回对应char def __init__(self): self.string_all = {} self.ch = [] def FirstAppearingOnce(self): # write code here if self.string_all is None: return '#' for i in self.ch: if self.string_all[i] == 1: return i return '#' def Insert(self, char): # write code here self.ch.append(char) if char in self.string_all: self.string_all[char] = self.string_all[char] + 1 else: self.string_all[char] = 1
解读:
Insert函数用来接收字符,构成字符流。FirstAppearingOnce函数用来判断是否为第一个只出现一次的字符。
用了字典来记录字符以及出现的次数。
比如 google :
先 插入 g,出现次数为 1,返回 g
再插入o,则字符流为 go,出现次数都为 1,但是第一个只出现一次的字符为 g ,返回 g
再插入 o,则字符流为 goo,出现次数为 1,2,第一个只出现一次的字符为 g ,返回 g
再插入g,则字符流为 goog,出现次数为 2,2,不存在第一个只出现一次的字符 ,返回 #
再插入 l,则字符流为googl,出现次数为2,2,1,第一个只出现一次的字符为 l,返回 l
以此类推
阅读全文
0 0
- Python :字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 55 - 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 【算法】字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符 java
- 字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- 字符串------字符流中第一个不重复的字符
- 【53】字符流中第一个不重复的字符
- 字符流中第一个不重复的字符
- mac 上vartual 使用记录
- (转载)Java开发达人必备的11个技术网站
- C4
- 编译c++程序x64/x86 运行出现 应用程序无法正常启动0xc000007b_学习笔记
- linux在下软件安装-jdk和tomcat安装
- Python :字符流中第一个不重复的字符
- 【Linux】中多路转接之poll
- ios之导航渐变---/导航透明/隐藏导航栏以及手势返回遇到的问题,状态栏
- C# 日期格式化
- IO流
- 51Nod X^2 Mod P
- python_函数(二)
- CART(Classification And Regression Tree)算法原理详解
- UDP协议