• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:JZ054字符流中第一个不重复的字符

java 搞代码 3年前 (2022-01-27) 31次浏览 已收录 0个评论

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

题目形容

请实现一个函数用来找出字符流中第一个只呈现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只呈现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只呈现一次的字符是”l”。

题目链接: 字符流中第一个不反复的字符

代码

<code class="java">import java.util.LinkedList;
import java.util.Queue;

/**
 * 题目:字符流中第一个不反复的字符
 * 题目形容
 * 请实现一个函数用来找出字符流中第一个只呈现一次的字符。例如,当从字符流中只读出前两个字符"go"时,
 * 第一个只呈现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只呈现一次的字符是"l"。
 * 题目链接:
 * https://www.nowcoder.com/practice/00de97733b8e4f97a3fb5c680ee10720?tpId=13&&tqId=11207&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
 */
public class Jz54 {

    private int[] cnts = new int[256];
    private Queue<Character> queue = new LinkedList<>();


    //Insert one char from stringstream
    public void insert(char ch) {
        cnts[ch]++;
        queue.add(ch);
        while (!queue.isEmpty() && cnts[queue.peek()] > 1) {
            queue.poll();
        }
    }

    //return the first appearence once char in current stringstream
    public char firstAppearingOnce() {
        return queue.isEmpty() ? '#' : queue.peek();
    }

    public static void main(String[] args) {

    }
}

【每日寄语】 愿你昨晚的坏情绪,在今日掀开被子,拉开窗帘的那一刻,杳无踪影。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:JZ054字符流中第一个不重复的字符
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址