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

    【题目】请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。如果当前字符流没有存在出现一次的字符,返回#字符。

     1 package com.exe6.offer;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashMap;
     5 import java.util.List;
     6 import java.util.Map;
     7 
     8 /**
     9  * 【题目】请实现一个函数用来找出字符流中第一个只出现一次的字符。
    10  *            例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。
    11  *            当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。
    12  * @author WGS
    13  *
    14  */
    15 public class FistNoRepeatChar {
    16     Map<Character,Integer> map=new HashMap<>();
    17     List<Character> list=new ArrayList<>();
    18     
    19     public void insert(char ch){
    20         //第一次出现就全部添加
    21         if(!map.containsKey(ch)){
    22             map.put(ch, 1);
    23             list.add(ch);
    24         }else{
    25             map.put(ch, map.get(ch)+1);
    26             if(list.contains(ch)){
    27                 list.remove(Character.valueOf(ch));
    28             }            
    29         }
    30     }
    31     
    32     public char appear(){
    33         if(list.isEmpty()) return '#';
    34         return list.get(0);
    35     }
    36     public static void main(String[] args) {
    37         FistNoRepeatChar f=new FistNoRepeatChar();
    38         char ch='g';
    39         f.insert(ch);
    40          ch='o';
    41         f.insert(ch);
    42          ch='o';
    43         f.insert(ch);
    44          ch='g';
    45         f.insert(ch);
    46          ch='l';
    47         f.insert(ch);
    48          ch='e';
    49         f.insert(ch);
    50         System.out.println(f.appear());
    51     }
    52 
    53 }
  • 相关阅读:
    POJ2965(The Pilots Brothers' refrigerator)
    POJ1753(Flip Game)
    POJ3253(Fence Repair)
    山东理工大学的训练计划
    loutsScript 常用代码
    《大道至简》读后感
    2019暑第三周
    2019暑第二周
    2019暑第一周
    关于13组作品《TD tree》的使用感想
  • 原文地址:https://www.cnblogs.com/noaman/p/5566611.html
Copyright © 2011-2022 走看看