牛客-Python-字符流中第一个不重复的字符

题目描述

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

输出描述:

如果当前字符流没有存在出现一次的字符,返回#字符。




代码:看到题目和给出的代码形式没搞懂题目的意思
# -*- coding:utf-8 -*-
class Solution:
    # 返回对应char
    def FirstAppearingOnce(self):
        # write code here
    def Insert(self, char):
        # write code here

  看到别人的解法才明白

问题:1、怎么标记出现一次(自己考虑到了使用字典)

     2、怎么找到第一个出现一次(走了弯路,只考虑了字典,可以对原字符串进行遍历)



# -*- coding:utf-8 -*-
class Solution:
    # 返回对应char
    def __init__(self):
        self.s = ''
        self.sdict = {}
    def FirstAppearingOnce(self):
        # write code here
        result = '#'
        for k in self.s:
            if self.sdict[k]==1:
                return k
        return result
    def Insert(self, char):
        # write code here
        self.s += char
        if char not in self.sdict:
            self.sdict[char]=1
        else:
            self.sdict[char]+=1

 

posted @ 2020-02-03 22:22  ditingz  阅读(360)  评论(0编辑  收藏  举报