zoukankan      html  css  js  c++  java
  • 剑指Offer-字符流中第一个不重复的字符

    题目描述

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

    输出描述:

    如果当前字符流没有存在出现一次的字符,返回#字符。

    思路

    使用一个LinkedHashMap来统计字符出现的次数

    代码实现

    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 '#';
        }
    }
    
    
    
  • 相关阅读:
    xhtml+css (网站重构)
    一个典型的代码走查检查单
    谈谈单位时间内投票次数限制
    .NET性能优化方面的总结
    IE6.0、IE7.0 与 FireFox CSS
    vue3中使用 aggrid 表格组件
    基于predis高并发情况下实现频率控制的函数
    Redis之Centos下使用redis
    SVN的安装和使用
    Git配置教程
  • 原文地址:https://www.cnblogs.com/wupeixuan/p/8623398.html
Copyright © 2011-2022 走看看