码迷,mamicode.com
首页 > 其他好文 > 详细

【字符串】 788. 旋转数字

时间:2020-05-03 21:40:38      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:个数   img   ima   als   nbsp   flag   旋转   alt   count   

题目:

技术图片

 

 

 

 

解答:

方法一:暴力解法【通过】

思路:

遍历从 1 到 N 的每个数字 X,判断 X 是否为好数。 如果 X 中存在 3、4、7 这样的无效数字,则 X 不是一个好数。 如果 X 中不存在 2、5、6、9 这样的旋转后会变成不同的数字,则 X 不是一个好数。 否则,X 可以旋转成一个不同的有效数字。

算法:

判断数字 X 是否为好数,有两种实现方式。最直观的一种方法是把 X 转换成字符串然后解析;另一种方法是递归检查 X 的最后一位数字。

 

 1 class Solution {
 2 public:
 3     int rotatedDigits(int N) 
 4     {
 5         // Count how many n in [1, N] are good.
 6         int ans = 0;
 7         for (int n = 1; n <= N; ++n)
 8         {
 9             if (good(n, false)) 
10             {
11                 ans++;
12             }
13         }
14         return ans;
15     }
16 
17     // Return true if n is good.
18     // The flag is true iff we have an occurrence of 2, 5, 6, 9.
19     bool good(int n, bool flag) 
20     {
21         if (n == 0) 
22         {   
23             return flag;
24         }
25 
26         int d = n % 10;
27         if (d == 3 || d == 4 || d == 7) 
28         {
29             return false;
30         }
31         if (d == 0 || d == 1 || d == 8) 
32         {
33             return good(n / 10, flag);
34         }
35 
36         return good(n / 10, true);
37     }
38 };

 

【字符串】 788. 旋转数字

标签:个数   img   ima   als   nbsp   flag   旋转   alt   count   

原文地址:https://www.cnblogs.com/ocpc/p/12823515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!