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

    题目描述

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

    输出描述:

    如果当前字符流没有存在出现一次的字符,返回#字符。
    import java.util.ArrayList;
    import java.util.HashMap;
    
    /**
     * 
     * @author gentleKay
     * 
     * 题目描述
     * 请实现一个函数用来找出字符流中第一个只出现一次的字符。
     * 例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。
     * 当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
     * 
     * 输出描述:
     * 如果当前字符流没有存在出现一次的字符,返回#字符。
     */
    
    public class Main53 {
    	
    	static HashMap<Character, Integer> map = new HashMap<>();
    	static ArrayList<Character> array = new ArrayList<>();
    	
    	public static void main(String[] args) {
    		Insert('a');
    		Insert('b');
    		Insert('a');
    		Insert('b');
    		char ch = Main53.FirstAppearingOnce();
    		System.out.println(ch);
    	}
    	
    	//Insert one char from stringstream
        public static void Insert(char ch){  
            if (map.containsKey(ch)) {
    			map.put(ch, map.get(ch)+1);
    		}else {
    			map.put(ch, 1);
    		}
            array.add(ch);
        }
        
        //return the first appearence once char in current stringstream
        public static char FirstAppearingOnce(){
        	for (char key : array) {
        		if (map.get(key) == 1) {
        			return key;
        		}
        	}
        	return '#';
        }
    }
    

      

  • 相关阅读:
    Running OOM killer script for process 32248 for Solr on port 8983
    List删除元素
    Oracle联合主键
    synchronized的四种用法
    数据库 乐观锁与悲观锁
    noip2011普及组 统计单词数
    bzoj3751 noip2014解方程
    汕头市队赛SRM07
    noip2010 导弹拦截&&vijos1810
    noip2009普及组 细胞分裂&&vijos1814
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11200062.html
Copyright © 2011-2022 走看看