剑指offer-面试题35-第一个只出现一次的字符

来源:互联网 发布:硬笔书法网络课程 编辑:程序博客网 时间:2024/06/05 02:35

题目描述:在字符串中找出第一个只出现一次的字符。比如输入abaccdeff,则输出b。

题目分析:用哈希表来实现,key,value对,key是字符,value是出现的次数,循环第一遍,统计每个字符出现的次数,循环第二遍,找出第一个只出现一次的字符。

//找出第一个只出现一次的字符    public static char findOneCharacter(char[] array) {        char result = ' ';        if (array == null || array.length < 0) {            throw new RuntimeException("wrong");        }        Map<Character, Integer> map = new HashMap<>();        for (int i = 0; i < array.length; i++) {            if (map.containsKey(array[i])) {                int value = map.get(array[i]);                value++;                map.put(array[i], value);            } else {                map.put(array[i], 1);            }        }        for (int i = 0; i < array.length; i++) {            if (map.containsKey(array[i]) && map.get(array[i]) == 1) {                result = array[i];            }        }        return result;    }
0 0
原创粉丝点击