Python程序:查找长度为n的所有倒置数字
假设我们有一个值n。我们必须找到长度为n的所有倒置数字。众所周知,倒置数字是指旋转180度后外观相同的数字。
因此,如果输入为n = 2,则输出将为['11', '69', '88', '96']。
为了解决这个问题,我们将遵循以下步骤:
定义一个函数middle()。它将接收x作为参数。
如果x为0,则
返回一个空字符串列表
如果x等于1,则
返回一个包含元素0、1、8的新列表
ret := 一个新列表
mid := middle(x − 2)
对于mid中的每个m,执行以下操作:
如果x不等于n,则
在ret的末尾插入("0" + m + "0")
在ret的末尾插入("1" + m + "1")
在ret的末尾插入("6" + m + "9")
在ret的末尾插入("8" + m + "8")
在ret的末尾插入("9" + m + "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']
广告