力扣刷题日记-2283-判断一个数的数字计数是否等于数位的值

51 阅读1分钟
  • 给你一个下标从 0 开始长度为 n 的字符串 num ,它只包含数字。

如果对于 每个 0 <= i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true ,否则返回 false 。

来源:力扣(LeetCode) 链接:leetcode.cn/problems/ch… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路 首先统计num各种数字出现的次数

/**
 * @param {string} num
 * @return {boolean}
 */
var digitCount = function(num) {
    let numToArr = num.toString().split('')
    let n = numToArr.length
    let map = new Map()
    for(let i = 0; i < n; i++) {
        let cur = numToArr[i]
         map.set(cur, map.get(cur) ? map.get(cur) + 1 : 1)
    }
    for(let i = 0; i < n; i++) {
        let compVal = map.get(i.toString()) || '0'
        if(compVal != numToArr[i]) {
            return false
        }
    }
    return true
};