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 '#';
        }
    }
    

      

  • 相关阅读:
    礼品卡导入可用
    mysql
    初级运维工程师面试题总结
    mysql聚合函数
    去任何一个公司的思想
    mysql数据库引擎
    导入MyEclipse项目乱码
    poj 1743 后缀数组 求最长不重叠重复子串
    hdu 1011 树形dp+背包
    poj 2342 && hdu 1520 树形dp
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11200062.html
Copyright © 2011-2022 走看看