NowCoder
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符 “go” 时,第一个只出现一次的字符是 “g”。当从该字符流中读出前六个字符“google" 时,第一个只出现一次的字符是 “l”。
解题思路
import java.util.*;
public class Solution {
private int[] cnts = new int[256];
private Queue queue = new LinkedList<>();
public void Insert(char ch) {
cnts[ch]++;
queue.add(ch);
while (!queue.isEmpty() && cnts[queue.peek()] > 1)
queue.poll();
}
public char FirstAppearingOnce() {
return queue.isEmpty() ? ‘#’ : queue.peek();
}
}
流中查找首个唯一字符
本文介绍了一种算法,用于从连续输入的字符流中找到第一个仅出现一次的字符。通过使用计数数组和队列的数据结构,可以高效地解决NowCoder上的相关问题。示例代码展示了如何插入字符并检索首次出现的唯一字符。
3441

被折叠的 条评论
为什么被折叠?



