使用Python將所有數字替換為字元的程式


假設我們有一個包含小寫英文字母(在偶數位置)和數字(在奇數位置)的字母數字字串s。考慮一個操作shift(c, x),其中c是任何字元,x是一個數字(數字),這將找到c之後的第x個字元。例如,shift('p', 5) = 'u' 以及 shift('a', 0) = 'a'。現在對於每個奇數索引i,我們想要將數字s[i]替換為shift(s[i-1], s[i])。我們必須找到替換所有數字後的s。

因此,如果輸入類似於s = "a2b1d4f3h2",則輸出將為"acbcdhfihj",因為

  • shift('a', 2) = 'c'

  • shift('b', 1) = 'c'

  • shift('d', 4) = 'h'

  • shift('f', 3) = 'i'

  • shift('h', 2) = 'j'

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

  • res:= 空字串

  • 對於範圍從0到s的大小的i,執行

    • 如果s[i]是數字,則

      • res := res 連線來自 (ASCII s[i] + ASCII s[i-1]) 的字元

    • 否則,

      • res := res 連線 s[i]

  • 返回res

讓我們看看以下實現以更好地理解 -

示例

 即時演示

def solve(s):
   res=""
   for i in range(len(s)):
      if s[i].isdigit():
         res+= chr(int(s[i])+ord(s[i-1]))
      else:
         res+=s[i]
   return res
s = "a2b1d4f3h2"
print(solve(s))

輸入

"a2b1d4f3h2"

輸出

acbcdhfihj

更新於: 2021年5月29日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告