Giả sử chúng ta có một chuỗi chữ cái viết thường s và một số bù là k. Chúng ta phải thay thế mọi chữ cái trong s bằng một chữ k ở vị trí xa hơn dọc theo bảng chữ cái. Chúng ta phải lưu ý rằng khi chữ cái tràn qua a hoặc z, nó sẽ bị quấn quanh phía bên kia.
Vì vậy, nếu đầu vào là "hello", k =3, thì đầu ra sẽ là "khoor"
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
Định nghĩa một hàm shift (). Điều này sẽ mất c
-
i:=ASCII của (c) - ASCII của ('a')
-
i:=i + k
-
i:=i mod 26
-
trả về ký tự từ ASCII (ASCII của ('a') + i)
-
Từ phương thức chính, thực hiện như sau -
-
ret:=với mỗi ký tự c trong s, tạo danh sách các phần tử bằng cách gọi shift (c)
-
trả lại ret
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Solution: def solve(self, s, k): def shift(c): i = ord(c) - ord('a') i += k i %= 26 return chr(ord('a') + i) return "".join(map(shift, s)) ob = Solution() print(ob.solve("hello", 3))
Đầu vào
"hello", 3
Đầu ra
khoor