为有牺牲多壮志,敢教日月换新天。

[Swift]LeetCode247.对称数 II $ Strobogrammatic Number II

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

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

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

Find all strobogrammatic numbers that are of length = n.

For example,
Given n = 2, return ["11","69","88","96"].

Hint:

  1. Try to use recursion and notice that it should recurse with n - 2 instead of n - 1.

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

找到所有长度为n的频闪图。

例如,

给定n=2,返回 [“11”,“69”,“88”,“96”]。

提示:

尝试使用递归,注意它应该使用n-2而不是n-1进行递归。


 1 class Solution {
 2     func shortest(_ n:Int) -> [String] {
 3         var one:[String] = ["0","1","8"]
 4         var two:[String] = [""]
 5         var res:[String] = two
 6         if n % 2 == 1
 7         {
 8             res = one
 9         }
10         for i in stride(from: (n % 2) + 2,through: n,by: 2)
11         {
12             var t:[String] = [String]()
13             for a in res
14             {
15                 if i != n
16                 {
17                     t.append("0" + a + "0")
18                 }
19                 t.append("1" + a + "1")
20                 t.append("6" + a + "9")
21                 t.append("8" + a + "8")
22                 t.append("9" + a + "6")
23             }
24             res = t
25         }
26         return res
27     }
28 }

 

posted @ 2019-01-03 15:23  为敢技术  阅读(308)  评论(0编辑  收藏  举报