zoukankan      html  css  js  c++  java
  • JZ54 字符流中第一个不重复的字符

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

    题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
    输出描述:
    如果当前字符流没有存在出现一次的字符,返回#字符。
    思路:开始以为这一道题有很流弊的解法,把自己想的unordered_map的方法放在一边,其实就是使用一个256大的数组模拟哈希就行了,每次插入记得统计目前该字符有多少个了,然后遍历一边这个vector,就可以找到第一个出现的。不过需要注意只对一个类进行操作。
    func Insert(ch byte) {
        src = append(src, ch)
        count[ch]++
    }
    
    func FirstAppearingOnce() byte {
        for _, ch := range src {
            if count[ch] == 1 {
                return ch
            }
        }
        return '#'
    }
    
    var count = make([]byte, 256)
    var src []byte
  • 相关阅读:
    6.24Java网络编程之IP
    Network
    Network
    Network
    Network
    ES
    JavaWeb
    ES
    ES
    ES
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/14642528.html
Copyright © 2011-2022 走看看