NOTE
字符流中第一个不重复的字符
使用 map 统计字符次数并保留输入顺序,查找字符流中第一个只出现一次的字符。
这是历史学习笔记,可能存在过时或不完整的理解。
1. 题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符“go”时,第一个只出现一次的字符是“g”。当从该字符流中读出前六个字符“google“时,第一个只出现一次的字符是”l”。
2. 思路
- map统计+list记录顺序
3. 实现
package main
var countMap = make(map[byte]int, 0)
var str = make([]byte, 0)
func Insert(ch byte) {
countMap[ch]++
str = append(str, ch)
}
func FirstAppearingOnce() byte {
for _, s := range str {
if countMap[s] == 1 {
return s
}
}
return '#'
}
讨论
使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看