Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình thay thế tất cả các chữ số bằng các ký tự bằng Python

Giả sử chúng ta có một chuỗi chữ và số s chứa các chữ cái tiếng Anh viết thường ở các vị trí chẵn và các chữ số ở các vị trí lẻ của nó. Hãy xem xét một ca hoạt động (c, x), trong đó c là bất kỳ ký tự nào và x là một số (chữ số), điều này sẽ tìm thấy ký tự thứ x sau c. Vì vậy, ví dụ, shift ('p', 5) ='u' và shift ('a', 0) ='a'. Bây giờ với mọi chỉ số lẻ i, chúng ta muốn thay thế chữ số s [i] bằng shift (s [i-1], s [i]). Chúng ta phải tìm s sau khi thay thế tất cả các chữ số.

Vì vậy, nếu đầu vào là s =​​"a2b1d4f3h2", thì đầu ra sẽ là "acbcdhfihj" bởi vì

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

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

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

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

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

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • res:=chuỗi trống

  • đối với tôi trong phạm vi từ 0 đến kích thước của s, thực hiện

    • nếu s [i] là một chữ số thì

      • res:=res nối ký tự từ (ASCII s [i] + ASCII của s [i-1])

    • nếu không,

      • res:=res nối s [i]

  • trả lại res

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

"a2b1d4f3h2"

Đầu ra

acbcdhfihj