zoukankan      html  css  js  c++  java
  • 牛客-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
  • 相关阅读:
    UML 类之间的关系
    [noi.ac省选模拟赛]第11场题解集合
    [CF1270F]Awesome Substrings
    [noi.ac省选模拟赛20200606]赌怪
    FFT,NTT入门
    [AHOI2017/HNOI2017]单旋
    [HNOI2016]最小公倍数
    [HNOI2016]树
    [HNOI2016]大数
    服务外包概论课程资料
  • 原文地址:https://www.cnblogs.com/ditingz/p/12257738.html
Copyright © 2011-2022 走看看