zoukankan      html  css  js  c++  java
  • 剑指offer-字符流中第一个不重复的字符-字符串-python

    题目描述

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

    输出描述:

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

    思路:使用两个队列保存字符,第一个保存只出现一次的,第二个保存所有字符。

    class Solution:
        def __init__(self):
            self.s = ''
            self.queue = []       #按顺序保存所有只出现一次的字符
            self.second = []      #按顺序保存所有出现过的字符
     
        def FirstAppearingOnce(self):
            if self.queue:
                return self.queue[0]
            return '#'
     
        def Insert(self, char):
            self.s += char
            if char in self.queue:
                self.queue.pop(self.queue.index(char))
            elif char not in self.second:
                self.queue.append(char)
                self.second.append(char)
  • 相关阅读:
    python 学习
    快速排序
    U3D AStar 案例
    U3D AStar 算法原理
    .net core 实时通讯
    .net 算法复杂度
    U3D MVC 背包案例
    U3D 对象池
    Unity网络基础(NetWork)
    U3D Socket实现简易通讯
  • 原文地址:https://www.cnblogs.com/ansang/p/12133478.html
Copyright © 2011-2022 走看看