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']

更新於:2020年10月21日

246 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告