Skip to content

788. 旋转数字 ​

  • 题号:788
  • 来源:LeetCode
  • 难度:中等
  • 标签:数学 模拟
  • 语言:TypeScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

TypeScript · O(n log n) 时间 · O(log n) 空间 · 更新于 2026-09-27

逐个检查数位是否可旋转,且含 2/5/6/9

typescript
/**
 * @difficulty medium
 * @tags 数学,模拟
 * @time O(n log n)
 * @space O(log n)
 * @note 逐个检查数位是否可旋转,且含 2/5/6/9
 * @788. 旋转数字
 */
let n = 857
let map1 = new Map<number, number>([[2, 5], [5, 2], [6, 9], [9, 6]])
let map2 = new Map<number, number>([[0, 0], [1, 1], [8, 8]])
let res: number = 0

const check=(num: number): boolean=> { // num=66
    let arr=num.toString().split("")
    let hasMapNum=0
    for(let i=0;i<arr.length;i++){
        if(map1.has(+(arr[i]))||map2.has(+(arr[i]))){
            // 大前提
            if(map1.has(+(arr[i]))){
                hasMapNum++
            }
        }else{
            return false
        }

    }
    if(hasMapNum==0){
        return false
    }
    return true;
}
for (let i = 1; i <= n; i++) {
    if (check(i as number)) {
       // console.log(i, "是旋转数字");
        res++;
    }
}
console.log(res)

源码:ts/leetcode/788. 旋转数字.ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm