檢查是否可以用給定的數字 N 在 Python 中建立一個迴文字串


假設我們有一個數字 n。我們必須檢查是否可以從該數字建立一個字母順序的小寫字串,並檢查該字串是否為迴文。這裡我們只取從 a 到 j 的字元,[a = 0, b = 1... j = 9]。因此,如果數字是 42,則將列印子字串“ec”直到 6(4+2)個字元“ececec”,然後檢查這是否為迴文。

因此,如果輸入類似於 n = 43,則輸出將為 True,字串為“ededede”,這是迴文。

為了解決這個問題,我們將遵循以下步驟:

  • temp := 空字串
  • s := n 作為字串
  • letters := 從 a 到 j 的所有字元
  • sum := 0
  • substr := 空字串
  • 對於 i 從 0 到 s 的大小 - 1,執行
    • d := s[i] 作為數字數字
    • substr := substr 連線 letters[d]
    • sum := sum + d
  • 當 temp 的大小 <= sum 時,執行
    • temp := temp 連線 substr
  • temp := temp[從索引 0 到 sum - 1]
  • 當 temp 為迴文時返回 true,否則返回 false

示例

讓我們看看以下實現以獲得更好的理解:

現場演示

def isPalindrome(s):
   return s == s[::-1]
def solve(n):
   temp = ""
   s = str(n)
   letters = "abcdefghij"
   sum = 0
   substr = ""
   for i in range(len(s)) :
      d = int(s[i])
      substr += letters[d]
      sum += d
   while len(temp) <= sum:
      temp += substr
   temp = temp[:sum]
   return isPalindrome(temp)
n = 43
print (solve(n))

輸入

43

輸出

True

更新於: 2021 年 1 月 18 日

433 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告