在Python中查詢一個字串,其中每個字元都比其緊鄰的下一個字元在字典序中更大


假設我們有一個數字n;我們必須檢查長度為n+1的小寫字串,以便任何位置的字元在字典序中都大於其緊鄰的下一個字元。

所以,如果輸入是15,那麼輸出將是ponmlkjihgfedcba。

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

  • temp_str := 空字串
  • extra := n mod 26
  • 如果 extra >= 1,則
    • 對於 i in range(26 -(extra + 1), 25):
      • temp_str := temp_str + str[i]
    • count := n // 26 (整除)
    • 對於 i in range(1, count + 1):
      • 對於 j in range(0, 25):
        • temp_str := temp_str + str[j]
  • 返回 temp_str

示例

讓我們看看下面的實現,以便更好地理解:

 線上演示

def show_string(n, str):
   temp_str = ""
   extra = n % 26
   if (extra >= 1) :
      for i in range( 26 - (extra + 1), 26):
         temp_str += str[i]
   count = n // 26
   for i in range(1, count + 1) :
      for j in range(26):
         temp_str += str[j]
   return temp_str
n = 15
str = "zyxwvutsrqponmlkjihgfedcba"
print(show_string(n, str))

輸入

15

輸出

ponmlkjihgfedcba

更新於:2020年8月28日

142 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告