NOTE

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

使用 map 统计字符次数并保留输入顺序,查找字符流中第一个只出现一次的字符。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

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 '#'
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看