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)在 GitHub 上查看题目所在目录:lmliheng/algorithm