• 字符流中第一个不重复的字符


    题目描述

    请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"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 '#';
        }
    }
    

      

  • 相关阅读:
    android C native测试程序example Android.bp
    C 代码中嵌入汇编(ARM)
    usb device connect kernel log
    MAP_FIXED标志的疑惑
    c misc
    iOS逆向工程
    Demo大全
    iOS开发之文件解压缩库--SSZipArchive
    有时间部分需要了解的架构
    Mac下常用Tool
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11200062.html
Copyright © 2020-2023  润新知