专栏首页武培轩的专栏剑指Offer-字符流中第一个不重复的字符

剑指Offer-字符流中第一个不重复的字符

package String;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 字符流中第一个不重复的字符
 * 题目描述
 * 请实现一个函数用来找出字符流中第一个只出现一次的字符。
 * 例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。
 * 当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
 * 输出描述:
 * 如果当前字符流没有存在出现一次的字符,返回#字符。
 * 思路:
 * 使用一个LinkedHashMap来统计字符出现的次数
 */
public class Solution26 {

    Map<Character, Integer> linkedHashMap = new LinkedHashMap<>();

    //Insert one char from stringstream
    public void Insert(char ch) {
        if (linkedHashMap.containsKey(ch)) {
            linkedHashMap.put(ch, linkedHashMap.get(ch) + 1);
        } else {
            linkedHashMap.put(ch, 1);
        }
    }

    //return the first appearence once char in current stringstream
    public char FirstAppearingOnce() {
        //遍历map集合,判断出现次数是否为1
        for (Map.Entry<Character, Integer> entry :
                linkedHashMap.entrySet()) {
            if (entry.getValue() == 1) {
                return entry.getKey();
            }
        }
        return '#';
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手把手教你搭建 ELK 实时日志分析平台

    本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢?

    武培轩
  • 一文搞懂 Elasticsearch 之 Mapping

    这篇文章主要介绍 Mapping、Dynamic Mapping 以及 ElasticSearch 是如何自动判断字段的类型,同时介绍 Mapping 的相关参...

    武培轩
  • JVM类加载过程与双亲委派模型

    类加载过程为JVM将类描述数据从.class文件中加载到内存,并对数据进行解析和初始化,最终形成被JVM直接使用的Java类型。包含:

    武培轩
  • 正则表达式基础,高频知识点

    用户5997198
  • 【优秀题解】问题 1442:打印十字图

    我的思路就是一步一步的分析,首先我想到的就是分配一块内存来储存图案,通过观察知道图案是一个方正,于是想到用字符矩阵。然后分布完成,首先就是把方块字符中...

    编程范 源代码公司
  • 苹果机器学习开发日记:如何设计能在Apple Watch上实时运行的中文手写识别系统

    AI 科技评论按:随着苹果机器学习日记(Apple ML Journal)的开放,苹果分享出的设计自己产品、运用机器学习解决问题的故事也越来越多。近日苹果在上面...

    AI科技评论
  • 时空特征--Learning Spatiotemporal Features with 3D Convolutional Networks

    Learning Spatiotemporal Features with 3D Convolutional Networks ICCV 2015 h...

    用户1148525
  • 初创公司该如何做好持续集成和部署

    作者简介 裴双才,Geekwolf,现MAKA运维负责人,博客: http://www.simlinux.com 《FastDFS分布式存储实战》作者,《An...

    DevOps时代
  • 零基础入门 9: Unity脚本的生命周期

    因为接下来的几篇分享,可能会开始编写脚本,所以索性用这篇来介绍下Unity脚本的常用生命周期函数。

    韩东吉
  • python机器学习实战(三)

    原文链接:www.cnblogs.com/fydeblog/p/7277205.html

    圆方圆PYTHON学院

扫码关注云+社区

领取腾讯云代金券