• [Swift]LeetCode248.对称数 III $ Strobogrammatic Number III


    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/10214629.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside down).

    Write a function to count the total strobogrammatic numbers that exist in the range of low <= num <= high.

    Example:

    Input: low = "50", high = "100"
    Output: 3 
    Explanation: 69, 88, and 96 are three strobogrammatic numbers.

    Note:
    Because the range might be a large number, the lowand high numbers are represented as string.


    strobogramatic数字是旋转180度时看起来相同的数字(上下颠倒)。

    编写一个函数来计算在low<=num<=high范围内存在的总strobogrammatic数。

    例子:

    输入:low=“50”,high=“100”

    输出:3

    说明:69、88和96是三个strobogramatic数字。

    注:

    因为范围可能是一个大数字,所以低数字和高数字表示为字符串。


     1 class Solution {
     2     func strobogrammaticInRange(_ low:String,_ high:String) -> Int {
     3         var res:Int = 0
     4         find(low, high, "",  &res)
     5         find(low, high, "0", &res)
     6         find(low, high, "1", &res)
     7         find(low, high, "8", &res)
     8         return res;
     9     }
    10     
    11     func find (_ low:String,_ high:String,_ w:String,_ res:inout Int)
    12     {
    13         if w.count >= low.count && w.count <= high.count
    14         {
    15             if (w.count == low.count && w < low) || (w.count == high.count && w > high)
    16             {
    17                 return 
    18             }
    19             if !(w.count > 1 && w[0] == "0")
    20             {
    21                 res += 1
    22             }
    23         }
    24         if w.count + 2 > high.count
    25         {
    26             return
    27         }
    28         find(low, high, "0" + w + "0", &res)
    29         find(low, high, "1" + w + "1", &res)
    30         find(low, high, "6" + w + "9", &res)
    31         find(low, high, "8" + w + "8", &res)
    32         find(low, high, "9" + w + "6", &res)
    33     }
    34 }
    35 
    36 extension String {        
    37     //subscript函数可以检索数组中的值
    38     //直接按照索引方式截取指定索引的字符
    39     subscript (_ i: Int) -> Character {
    40         //读取字符
    41         get {return self[index(startIndex, offsetBy: i)]}
    42     }
    43 }
  • 相关阅读:
    python深度学习之灾难求生预测(titanic)
    python深度学习之语音识别(speech recognize)
    greenplum集群状态恢复与同步
    python手写图片识别MNIST
    python随机森林房价预测
    机器学习常用模型
    python爬虫优化和错误日志分析
    数据挖掘数学基础
    虚拟机spark集群搭建
    虚拟机zookeeper和hbase集群搭建
  • 原文地址:https://www.cnblogs.com/strengthen/p/10214629.html
Copyright © 2020-2023  润新知