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