保留输入顺序的哈希表

第一个只出现一次的字符

http://www.nowcoder.com/questionTerminal/1c82e8cf713b4bbeb2a5b31cf5b0417c

出现次数,请考虑哈希表,在保留输入顺序时,请使用linkedHashMap(插入顺序和访问顺序)

图解如下:
图片说明

首次出现,Set.

    /**
     * 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置,
     * 如果没有则返回 -1(需要区分大小写).(从0开始计数)
     * @param str 字符串
     * @return 第一个只出现一次的字符的位置
     */
    public int FirstNotRepeatingChar(String str) {
        if(str==null||str.length()==0){
            return -1;
        }
        Map<Character,Integer> dict=new LinkedHashMap<>();
        char[]cs=str.toCharArray();
        for(char c:cs){
            dict.put(c,dict.getOrDefault(c,0)+1);
        }
        char c='A';
        for(Map.Entry<Character,Integer> d:dict.entrySet()){
            if(d.getValue()>1){
                c=d.getKey();
                break;
            }
        }
        for(int i=0;i<cs.length;i++){
            if(cs[i]==c){
                return i;
            }
        }

        return 0;
    }
全部评论

相关推荐

身边有人上海、深圳&nbsp;6、7k&nbsp;都去了,真就带薪上班了。
程序员小白条:木的办法, 以后越来越差,还是家附近宅着吧,毕业的人越来越多,岗位都提供不出来,经济又过了人口红利期
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务