使用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"

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

acbcdhfihj

更新于: 2021年5月29日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告