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

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

    ac代码:

     1 import java.util.ArrayList;
     2 import java.util.Arrays;
     3 import java.util.HashMap;
     4 import java.util.Map;
     5 public class Solution {
     6     //Insert one char from stringstream
     7      ArrayList<Character>list=new ArrayList<Character>();
     8     Map<Character,Integer>map=new HashMap<Character,Integer>();
     9      char c;
    10     public void Insert(char ch)
    11     { 
    12         list.add(ch);
    13         if(map.containsKey(ch)){
    14         map.put(ch,map.get(ch)+1);
    15     }else{
    16         map.put(ch,1);
    17     }
    18     boolean flag=false;
    19     for(int i=0;i<list.size();i++){
    20         if(map.get(list.get(i))==1){
    21             c=list.get(i);
    22             flag=true;
    23             break;
    24         }
    25            
    26     }
    27     if(!flag)
    28         c='#';
    29     }
    30   //return the first appearence once char in current stringstream
    31     public char FirstAppearingOnce()
    32     {
    33        return c;
    34     }
    35 }
  • 相关阅读:
    BZOJ1443 [JSOI2009]游戏Game
    BZOJ4950 [Wf2017]Mission Improbable
    假期编程
    假期编程
    假期编程
    假期编程
    假期编程练习-求和
    假期编程练习——一个数的n次幂取余
    假期编程练习———十进制转二进制
    小球抛物线运动
  • 原文地址:https://www.cnblogs.com/llsq/p/8809873.html
Copyright © 2011-2022 走看看