码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode]Strobogrammatic Number II

时间:2020-01-31 22:34:21      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:code   list   mat   trace   etc   append   div   rac   ack   

python3

先对左边进行backtrace,然后根据奇偶添加右边的。

class Solution:
    def findStrobogrammatic(self, n: int) -> List[str]:
        if n == 0:
            return []
        
        charDict = {‘0‘: ‘0‘, ‘1‘: ‘1‘, ‘6‘: ‘9‘, ‘8‘: ‘8‘, ‘9‘: ‘6‘}
        lst = []
        
        self.backtrace(n // 2, ‘‘, lst)
        
        result = []
        
        for item in lst:
            reverse = ‘‘
            for i in range(len(item)):
                reverse += charDict[item[len(item) - i - 1]]
            if n % 2 == 0:
                result.append(item + reverse)
            else:
                result.append(item + ‘0‘ + reverse)
                result.append(item + ‘1‘ + reverse)
                result.append(item + ‘8‘ + reverse)
        return result
                
        
    def backtrace(self, m: int, current: str, lst: List[str]):
        if len(current) == m:
            lst.append(current)
            return
        for char in [‘0‘, ‘1‘, ‘6‘, ‘8‘, ‘9‘]:
            if (current + char)[0] == ‘0‘:
                continue
            self.backtrace(m, current + char, lst)

  

[leetcode]Strobogrammatic Number II

标签:code   list   mat   trace   etc   append   div   rac   ack   

原文地址:https://www.cnblogs.com/lautsie/p/12246976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!