LeetCode 788. 旋转数字
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 788. 旋转数字
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 題目
我們稱一個數(shù) X 為好數(shù), 如果它的每位數(shù)字逐個地被旋轉(zhuǎn) 180 度后,我們?nèi)钥梢缘玫揭粋€有效的,且和 X 不同的數(shù)。要求每位數(shù)字都要被旋轉(zhuǎn)。
如果一個數(shù)的每位數(shù)字被旋轉(zhuǎn)以后仍然還是一個數(shù)字, 則這個數(shù)是有效的。
0, 1, 和 8 被旋轉(zhuǎn)后仍然是它們自己;
2 和 5 可以互相旋轉(zhuǎn)成對方(在這種情況下,它們以不同的方向旋轉(zhuǎn),換句話說,2 和 5 互為鏡像);
6 和 9 同理,除了這些以外其他的數(shù)字旋轉(zhuǎn)以后都不再是有效的數(shù)字。
現(xiàn)在我們有一個正整數(shù) N, 計(jì)算從 1 到 N 中有多少個數(shù) X 是好數(shù)?
示例: 輸入: 10 輸出: 4 解釋: 在[1, 10]中有四個好數(shù): 2, 5, 6, 9。 注意 1 和 10 不是好數(shù), 因?yàn)樗麄冊谛D(zhuǎn)之后不變。提示: N 的取值范圍是 [1, 10000]。來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/rotated-digits
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
2. 解題
class Solution { public:int rotatedDigits(int N) {int i, num, bit, count = 0;bool flag, includeDiffer;for(i = 2; i <= N; ++i){num = i;flag = true;includeDiffer = false;while(num){bit = num % 10;if(bit == 3 || bit == 4 || bit == 7){flag = false;//不是有效的數(shù)字了break;}if(includeDiffer == false && (bit == 2 || bit == 5 || bit == 6 || bit == 9))includeDiffer = true;//這些數(shù)轉(zhuǎn)了以后,數(shù)值變化num /= 10;}if(flag && includeDiffer)//有效數(shù)字,且變化了++count;}return count;} };4 ms 8.1 MB
總結(jié)
以上是生活随笔為你收集整理的LeetCode 788. 旋转数字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 516. 最长回文子序
- 下一篇: LeetCode 837. 新21点(动