js基础算法05--查找重复的字符

开始之前
了解什么是hash table (哈希表)
for 循环中break 和 return的区别

哈希表的方式解

第一种方式,用哈希表。循环俩次,第一次储存当前字符出现的频率,没出现一次,对象key的评率value就加一。然后第二次循环,遇到第一个评率为一的,保留它的下标,return 出去

const str ='leetcode'    //expect result is 0
const str2 ='loveleetcode' //expect result is 2

// solution  1 , use hash table ,save the string's item as key to 
// object , then interate the map . if the key's ferquency of occurrenc
// is 1 . get current item's index , return it 
function firstSpecialStr(str) {
    let map = {}
    let result 
    for(let i in str){
        map[str[i]] ?  map[str[i]] ++ :  map[str[i]] = 1
    }
    for(let i in str){
        if(map[str[i]] === 1){
            result = i
            break
        }
    }
    return result
}


console.log(firstSpecialStr(str2))

for 循环中的return 和 break 的区别 (continue)

都是中止, return break continue是有区别的,不然也不会有三个,希望不要像我一样,还没有特别清晰,不清晰就狗带
** return** 停止, 停止当前for 循环, 甚至停止了return之后的函数代码。
** break** 停止当前for 循环 但是还是会执行for 循环后面的代码
** continue** 停止,只是停止当前for循环中的函数,就是这次for循环continue后面的代码,然后继续执行下一次循环

OK 先到这里 休息

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值