[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
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
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:
- 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 }