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());
        }
        
        
    }
  • 相关阅读:
    IDEA快捷键命令
    win命令
    jwt《token》
    批量注释与快速顶底部命令
    springboot邮通知553错误和
    git《一》
    twemproxy《一》
    reids在linux上的安装《四》
    linux安装jdk
    长沙和广州软件开发之我见
  • 原文地址:https://www.cnblogs.com/atomicbomb/p/8884638.html
Copyright © 2011-2022 走看看