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