zoukankan      html  css  js  c++  java
  • 面试题1—选取同一个字符第一不重复的字符

    例如:google 第一个不重复的字符是l,ababc第一个不重复的字符是c

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
    * @author ll
    * @date 2018年4月19日 下午2:54:34
    * 字符串流中不重复的字符。例如字符串ababc,第一个不重复的字符串是c
     */
    public class FirstNoRepeatChar {
        
        //定义数据结构
        //用来存放字符和出现的次数
        public static Map<Character,Integer> map = new HashMap<Character,Integer>();
        //存放字符流中的字符
        public static List<Character> list = new ArrayList<Character>(); 
        
        /**
         * map中不包含相应的字符,则将字符放到map中,并添加到list中
         * 若map中包含相应的字符,则将map中出现的次数加1,移除list中的字符
         */
        public  List<Character> checkChar(Character c){
            if(!map.containsKey(c)){
                map.put(c, 1);
                list.add(c);
            }else{
                map.put(c, Integer.valueOf(String.valueOf(map.get(c)))+1);
                if(list.contains(c)){
                    list.remove(c);
                }
            }
            return list;
        }
        
        public char printResult(){
            if(list.isEmpty()){
                return '#';
            }
            return list.get(0);
               
        }
        
        public static void main(String[] args) {
            FirstNoRepeatChar fnr = new FirstNoRepeatChar();
            String str ="google";
            char[] cs = str.toCharArray();
            for (char c : cs) {
                fnr.checkChar(c);
            }
            System.err.println(fnr.printResult());
        }
        
        
    }
  • 相关阅读:
    3. 尾缀
    Cocos工程命名规则整理(node部分)
    3.1-3.3 HBase Shell创建表
    2.11-2.12 HBase的数据迁移常见方式
    2.8-2.10 HBase集成MapReduce
    2.7 HBase架构深入剖析
    2.3-2.6 HBase java API
    2.1-2.2 HBase数据存储
    1.6-1.8 HBase表的物理模型
    1.4-1.5 HBase部署及基本使用
  • 原文地址:https://www.cnblogs.com/atomicbomb/p/8884638.html
Copyright © 2011-2022 走看看