Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình thay thế chữ số bằng ký tự dịch chuyển bằng Python

Cho chuỗi alphanumeric s: ký tự thường ở vị trí chẵn, chữ số ở vị trí lẻ. Phép shift(c, x): trả về ký tự cách c x vị trí trong bảng chữ cái (shift('p',5)='u', shift('a',0)='a'). Với mỗi chỉ số lẻ i, thay s[i] bằng shift(s[i-1], s[i]). Trả về chuỗi sau thay thế.

Ví dụ: s = "a2b1d4f3h2" → "acbcdhfihj" vì: shift('a',2)='c', shift('b',1)='c', shift('d',4)='h', shift('f',3)='i', shift('h',2)='j'.

Thuật toán giải quyết

  • res := chuỗi rỗng.
  • Duyệt i từ 0 đến len(s)-1:
    • Nếu s[i] là chữ số: res += chr(ord(s[i-1]) + int(s[i])).
    • Ngược lại: res += s[i].
  • Trả về res.

Ví dụ triển khai

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