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

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

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

package main
var (
    str = ""
)
func Insert(ch byte) {
    str += string(ch)
}

func FirstAppearingOnce() byte {
    bytes := []byte(str)
    m := make(map[byte][]int)
    for i, v := range bytes {
        if m[v] == nil {
            m[v] = make([]int, 2)
        }
        m[v][0]++
        m[v][1] = i
    }
    index := len(bytes)
    for _, v := range m {
        if v[0] == 1 && index > v[1] {
            index = v[1]
        }
    }
    if index == len(bytes) {
        return '#'
    } else {
        return bytes[index]
    }
    
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务