题解 | #第一个只出现一次的字符#

第一个只出现一次的字符

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

方法一

{
    // write code here
    if(!str)    return -1;
    let map = new Map();
    for(let i = 0;i < str.length;i++){
        let tmp = str[i];
        if(map.has(tmp)){
            map.set(tmp,map.get(tmp) + 1); 
        }else{
            map.set(tmp,1);
        }
    }
    for(let i = 0;i < str.length;i++){
        let tmp = str[i];
        if(map.has(tmp)){
            if(map.get(tmp) === 1)
                return i;
        }
    }
    return -1;
}
module.exports = {
    FirstNotRepeatingChar : FirstNotRepeatingChar
};

alt

方法二

{
    // write code here
    let res = [] // 存储字母出现的次数
    //统计出现的次数
    for(let i = 0;i < str.length;i++){
        let key = str[i];
        if(!res[key]){
            res[key] = 0;
        }
        res[key]++;
    }
    //遍历字符串,若只出现一次则返回下标
    for(let  i = 0;i < str.length;i ++){
        let key = str[i];
        if(res[key] == 1){
            return i;
        }
    }
    return -1;
}
module.exports = {
    FirstNotRepeatingChar : FirstNotRepeatingChar
};

alt

全部评论

相关推荐

今天 12:17
已编辑
商丘师范学院 Java
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 15:58
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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