首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【leetcode刷题】T91-旋转数字

【leetcode刷题】T91-旋转数字

作者头像
木又AI帮
修改2019-07-18 10:25:40
6110
修改2019-07-18 10:25:40
举报
文章被收录于专栏:木又AI帮木又AI帮

【题目】

我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。

如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。

给定有一个正整数 N, 计算从 1 到 N 中有多少个数 X 是好数?

示例:
输入: 
输出: 
解释: 
在[, ]中有四个好数: , , , 。
注意  和  不是好数, 因为他们在旋转之后不变。

注意:

N 的取值范围是 [1, 10000]。

【思路】

将数字转换为字符串,即判断字符串元素是否都是'0182569',并且有至少一个元素是'2569'

【代码】

python版本

class Solution(object):
    def rotatedDigits(self, N):
        """
        :type N: int
        :rtype: int
        """
        count = 
        other = '2569'
        valid = '018'
        for i in range(N+):
            s = str(i)
            valid_flag = True
            other_flag = False
            # 所有字符都为'0125689'
            # 并且有'2569',计数加1
            for si in s:
                if si in valid:
                    continue
                elif si in other:
                    other_flag = True
                else:
                    valid_flag = False
                    break
            if valid_flag and other_flag:
                count += 
        return count
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档