字符流中第一个不重复的字符 python实现

系统 1387 0

题目描述

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

输出描述:

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


思路

用两个列表,一个用来保存所有的字符,一个用来保存只出现一次的字符,


算法

          
            # -*- coding:utf-8 -*-
class Solution:
    # 返回对应char
    def __init__(self):
        self.array=[] #保存出现的所有字符
        self.result=[] # 保存只出现一次的字符
    def FirstAppearingOnce(self):
        # write code here
        if len(self.result)!=0:
            for i in self.result:
                return i
        return '#'
    def Insert(self, char):
        # write code here
        for i in char:
            # 如果已经出现一次的字符再次出现,则将该字符从只出现一次的列表中去除
            if i in self.result:
                self.result.remove(i)
            # 如果没出现在result列表,野没出现在array的列表,才能加入result列表,
            # 这里是考虑排除出现奇数个相同字符的情况,
            elif i not in self.array:
                self.result.append(i)
            self.array.append(i)
          
        

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论