开始之前
了解什么是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后面的代码,然后继续执行下一次循环