程序在Python中查找长度为n的所有倒置数字

假设我们有一个值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']