假设我们有一个值n。我们必须找到长度为n的所有倒置数字。正如我们所知,上下颠倒的数字是当翻转180度时看起来相同的数字。
因此,如果输入类似于n = 2,则输出将为['11','69','88','96']。
为了解决这个问题,我们将遵循以下步骤-
定义一个功能middle()
。这将花费x
如果x为0,则
返回空白字符串的列表
如果x与1相同,则
返回元素0、1、8的新列表
ret:=一个新列表
中:=中(x − 2)
中间每米
在ret的末尾插入(“ 0”并置“ m”并接“ 0”)
如果x与n不同,则
在ret的末尾插入(“ 1”并置“ 1”)
在ret的末尾插入(“ 6”并置“ 9”)
在ret的末尾插入(“ 8”并置,“ 8”并置)
在ret的末尾插入(“ 9”并置“ 6”)
返回ret
从主要方法中,执行以下操作-
如果n为0,则
返回新列表
否则返回Middle(n)的排序列表
让我们看下面的实现以更好地理解-
class Solution: def solve(self, n): if not n: return [] def middle(x=n): if not x: return [""] if x == 1: return list("018") ret = [] mid = middle(x - 2) for m in mid: if x != n: ret.append("0" + m + "0") ret.append("1" + m + "1") ret.append("6" + m + "9") ret.append("8" + m + "8") ret.append("9" + m + "6") return ret return sorted(middle()) ob = Solution()print(ob.solve(2))
2
输出结果
['11', '69', '88', '96']