首页 > 其他 > 详细

247. Strobogrammatic Number II 倒过来看也一样的数

时间:2020-07-25 11:37:34      阅读:75      评论:0      收藏:0      [点我收藏+]

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.

Example:

Input:  n = 2
Output: ["11","69","88","96"]

思路:不知道和回溯有啥关系?感觉是去要去加。
cur = ans;
然后根据cur,给ans里加东西
这是用iterative的方法去加,还蛮特殊的

for (;n > 1; n -= 2) {
            cur = ans;
            ans = new ArrayList<String>();
            for (String i : cur) {
                if (n > 3) ans.add(‘0‘ + i + ‘0‘);

 

如果长度 > 3, 就可以有‘010‘这种被0夹的数字

 

技术分享图片
class Solution {
    public List<String> findStrobogrammatic(int n) {
        List<String> cur, ans;
        ans = new ArrayList<String>((n & 1) == 0 ? Arrays.asList("") : Arrays.asList("0", "1", "8"));
        if (n < 2) return ans;
        
        for (; n > 1; n -= 2) {
            cur = ans;
            ans = new ArrayList<String>();
            
            for (String currentString : cur) {
                if (n > 3)
                    ans.add(‘0‘ + currentString + ‘0‘);
                ans.add(‘1‘ + currentString + ‘1‘);
                ans.add(‘6‘ + currentString + ‘9‘);
                ans.add(‘9‘ + currentString + ‘6‘);
                ans.add(‘8‘ + currentString + ‘8‘);
            }

        }
        return ans;
    }
}
View Code

 


 

247. Strobogrammatic Number II 倒过来看也一样的数

原文:https://www.cnblogs.com/immiao0319/p/13375401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!