题解 | #字符流中第一个不重复的字符#

字符流中第一个不重复的字符

http://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720

类似#第一个只出现一次的字符# https://blog.nowcoder.net/n/6aa6f3ed254041a88572510af837616e

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.s=''
        self.mydict={}
        
    def FirstAppearingOnce(self):
        for i in self.s:
            if self.mydict[i]==1:
                return i 
        return '#'
                
    def Insert(self, char):
        self.s=self.s+char
        if char not in self.mydict:
            self.mydict[char]=1
        else:
            self.mydict[char]=self.mydict[char]+1
  1. 根据后台输入方式来设计函数

后台会用以下方式调用 Insert 和 FirstAppearingOnce 函数: 循环遍历字符串里的每一个字符ch { Insert(ch); caseout += FirstAppearingOnce() }

所以insert函数是逐个字符输入进去的,自变量char表示输入一个字符。FirstAppearingOnce函数要求逐次返回的一个字符(当前字符流只出现一次的那个字符)。

2.设计函数。Insert函数用来记录,插入char后,每个字符出现的次数。FirstAppearingOnce用来对每个字符查哈希表,返回第一个计数为1的字符。

3.小提示:这里要设计初始化__init__方法,使得实例一开始就拥有类模板所具有的属性。如果不这样设计的话,输入的字符串没法连续记录,还有字典也没有初始化。

如果在函数体(准确的说是类的方法),比如Insert里面再初始化字典,会导致每次调用会重新初始化一次。btw,__init__方法就是用来专门干初始化赋属性这活儿,本来就应该在这儿写初始化,加强理解。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
争当牛马还争不上
码农索隆:1.把简历改哈 2.猛投,狠投 3.把基础打牢 这样你在有机会的时候,才能抓住
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务