leetcode Day33 哈希表

81 阅读1分钟

1876. 长度为三且各字符不同的子字符串

var countGoodSubstrings = function(s) {
    let res=0
    for(let i=0;i<s.length-2;i++){
        let str=s.slice(i,i+3)
        if(new Set(str).size===3){
            res++
        }
    }
    return res
};

1893. 检查是否区域内所有整数都被覆盖

var isCovered = function(ranges, left, right) {
    let rangeLine = new Array(51);
    ranges.forEach(range => {
        for(let i = range[0], len = range[1]; i <= len; i++) {
            rangeLine[i] = 1
        }
    })
    for(let i = left, len = right; i <= len; i++) {
        if(rangeLine[i] != 1) {
            return false
        }
    }
    return true
};

1897. 重新分配字符使所有字符串都相等

var makeEqual = function(words) {
    let map =new Map()
    for(let i=0;i<words.length;i++){
        for(let j=0;j<words[i].length;j++){
            map.set(words[i][j],map.has(words[i][j])?map.get(words[i][j])+1:1)
        }
    }
    for(let [key,value] of map){
        if(value%words.length!==0){
            return false
        }
    }
    return true
};

1935. 可以输入的最大单词数

var canBeTypedWords = function(text, brokenLetters) {
    let letters=text.split(' ')
    let res=0
    let flag=true
    for(let i of letters){
        for(let j=0;j<i.length;j++){
            if(brokenLetters.includes(i[j])){
                flag=false
                break
            }else{
                flag=true
            }
        }
        if(flag){
            res++
        }
    }
    return res
};

1941. 检查是否所有字符出现次数相同

var areOccurrencesEqual = function(s) {
    let map=new Map()
    for(let i of s){
        map.set(i,map.has(i)?map.get(i)+1:1)
    }
    let set=new Set(map.values())
    return set.size===1
};