专栏首页Michael阿明学习之路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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 806. 写字符串需要的行数

    我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写...

    Michael阿明
  • LeetCode 第 20 场双周赛(294 / 1541,前19.07%,第1次全部通过)

    全国排名:294/1541,前19.07%;全球排名:885/4347,前20.4%

    Michael阿明
  • LeetCode 1043. 分隔数组以得到最大和(DP)

    给出整数数组 A,将该数组分隔为长度最多为 K 的几个(连续)子数组。分隔完成后,每个子数组的中的值都会变为该子数组中的最大值。

    Michael阿明
  • 解决jenkins git timeout

    最近在阿里云华南部署了一台jenkins,代码托管平台是github。在构建发布项目的时候总是失败,提示错误信息:ERROR: Timeout after 10...

    行 者
  • C\C#\Java\Python 基本数据类型比较

    C语言基本数据类型 ? ? C#基本数据类型 ? Ps:布尔类型即逻辑类型,表示逻辑上的真或假。C语言中0为假,非0均为真。 Java基本数据类型 ? Pyth...

    Steve Wang
  • Canvas系列(9):其他API

    前面的内容讲了不少Canva的API,这章把剩下的API一讲吧。这个系列中以后基本不糊涉及新的API了,因为,这章完了我们就真的学完了!

    kai666666
  • Hybris里类似ABAP Netweaver的DDIC - 如何做data type的extension

    ABAP里客户做二次开发时,当其business requirement需要新的字段添加到已有数据类型上时,一般采用append structure的方式增强S...

    Jerry Wang
  • vue初

    指令总结 v-bind 可以绑定属性,包括class style,而已省略,使用:替代 在1vue.0中有三种修饰符,.sync,.once,.camel...

    河湾欢儿
  • 说说Spark的failover容错机制 | 面试系列

    (1) Driver挂掉,所有executor都会挂掉,那么所有未保存的数据都丢掉了,replication就不管用了;(数据不丢失的问题)

    Lenis
  • 微信也有花式聊天气泡了、彩色昵称了!已放弃QQ了

    IT小侠公社

扫码关注云+社区

领取腾讯云代金券