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

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

    输出描述:

    如果当前字符流没有存在出现一次的字符,返回#字符。

    思路
    采用HashMap来记录字符流出现的次数,同时使用一个ArrayList唯一保存出现的字符,便于在遍历Map时作为Key。

    import java.util.ArrayList;
    import java.util.HashMap;
    
    public class Solution {
    	
    	public HashMap<Character, Integer> map = new HashMap<Character, Integer>();
    	ArrayList list = new ArrayList();
        //Insert one char from stringstream
        public void Insert(char ch)
        {
            if(!map.containsKey(ch)) {
            	map.put(ch, 1);
            	list.add(ch);
            }
            else {
            	map.put(ch, map.get(ch) + 1);
            }
        }
      //return the first appearence once char in current stringstream
        public char FirstAppearingOnce()
        {
        	
        	for (int i = 0; i < list.size(); i++) {
    			if(map.get(list.get(i)) == 1) {
    				return (char) list.get(i);
    			}
    		}
        	return '#';
    
        }
    }
    
  • 相关阅读:
    LAMP 环境搭建
    环境搭建/安装部署
    Linux 系统安装(5分钟)
    Eclipse 配置
    wsdl生成的客户端
    Oracle 修改字符集
    jquery expand
    js中不常用的对象或方法
    js中面向对象的封装
    JavaScript点击li显示索引
  • 原文地址:https://www.cnblogs.com/lishanlei/p/10707652.html
Copyright © 2011-2022 走看看