zoukankan      html  css  js  c++  java
  • 788. 旋转数字

     思路:

    1、遍历从1---N+1的所有整数
    2、将当前数字转化成字符串ch,只有所有字符都是list1中的字符,才满足旋转条件;
    3、遍历字符串化后的数,将存在list1中的字符旋转,拼接给ans;
    4、旋转后比较ch和ans,相等则res加1;
    5、返回res。
     1 class Solution(object):
     2     def rotatedDigits(self, N):
     3         """
     4         :type N: int
     5         :rtype: int
     6         """
     7         list1 = ['0', '1', '8', '2', '5', '6', '9']
     8         res = 0
     9         # 遍历从1到N
    10         for i in range(1, N+1):
    11             # 整数字符串化,判断是否是旋转后不变化的数,是则进入下一趟循环
    12             if set(str(i)) <= {'0', '1', '8'}:
    13                 print("旋转后不变的数:", i)
    14                 continue
    15             # 转成字符串
    16             ch = str(i)
    17             ans = ""
    18             # 转成set
    19             setch = set(ch)
    20             # 操作旋转后会变的数
    21             if setch <= set(list1):
    22                 print("旋转后会变,且符合旋转条件的数:", i)
    23                 print("字符串化,且符合旋转条件的数:", ch)
    24                 # 遍历字符串,按要求将对应的数字旋转
    25                 for index, eng in enumerate(ch):
    26                     print("遍历字符串化后的数:当前字符为:", eng)
    27                     if eng in ['0', '1', '8']:
    28                         ans += eng
    29                     elif eng in ['2', '5'] and eng == '2':
    30                         ans += '5'
    31                     elif eng in ['2', '5'] and eng == '5':
    32                         ans += '2'
    33                     elif eng in ['6', '9'] and eng == '6':
    34                         ans += '9'
    35                     elif eng in ['6', '9'] and eng == '9':
    36                         ans += '6'
    37                     else:
    38                         ans += eng
    39                 print("旋转后的数:", ans)
    40             # 不满足旋转条件的数跳过
    41             else:
    42                 continue
    43             # 判断旋转前后是否相等,即是不是“好数”
    44             if ans != ch:
    45                 print("满足条件的好数:", ch)
    46                 res += 1
    47             print()
    48         return res
    49 
    50 
    51 if __name__ == '__main__':
    52     solution = Solution()
    53     print(solution.rotatedDigits(2))
    54     print(solution.rotatedDigits(10))
     
  • 相关阅读:
    [ThreadStatic] dosen't work with instance fields
    Java XxlJob 必知必会<续篇>
    Python 数据可视化神器—Pyecharts
    PICT 生成正交测试用例教程
    Hive 分桶表核心知识点
    Python + Flask 实现接口接收内存信息
    数据工程师:必备的 Hive 安装&交互方式技能
    JvmSandboxRepeater 配置修改详解
    JavaDubbo 接口测试
    Hadoop + Hive 数据仓库原理与架构
  • 原文地址:https://www.cnblogs.com/panweiwei/p/12697794.html
Copyright © 2011-2022 走看看