Xử lý chuỗi
Mô tả
Cậu Ba mở một Zalo Mini App nhỏ để gửi lời chúc Tết cho bạn bè trong nhóm lớp. Cậu muốn tin nhắn thêm phần bất ngờ nên quyết định mã hóa bằng phương pháp Caesar — mỗi chữ cái tiếng Anh trong tin nhắn được dịch đi một số vị trí xác định theo bảng chữ cái. Các chữ cái in hoa giữ nguyên in hoa, chữ cái in thường giữ nguyên in thường. Các ký tự khác như số, dấu câu hay khoảng trắng thì không thay đổi. Hãy giúp cậu Ba viết hàm mã hóa một chuỗi cho trước với số dịch cho trước.
Đầu vào
s(chuỗi): tin nhắn cần mã hóa, chỉ chứa chữ cái tiếng Anh (hoa và thường), chữ số, dấu câu thông dụng và khoảng trắng.k(số nguyên): số vị trí dịch chuyển.
Đầu ra
- Trả về chuỗi đã mã hóa theo quy tắc Caesar với số dịch
k.
Ràng buộc
1 <= độ dài s <= 10^40 <= k <= 10^9
Ví dụ
Ví dụ 1
- Đầu vào:
s = "Happy New Year",k = 3 - Đầu ra:
"Kdssb Qhz Bhdu" - Giải thích: Chữ 'H' dịch 3 vị trí thành 'K'. Chữ 'a' dịch 3 vị trí thành 'd'. Chữ 'p' dịch 3 vòng về 's'. Khoảng trắng giữa các từ giữ nguyên. Áp dụng tương tự cho cả chuỗi.
Ví dụ 2
- Đầu vào:
s = "Zalo 2024!",k = 5 - Đầu ra:
"Efqt 2024!" - Giải thích: 'Z' dịch 5 vị trí thành 'E' (vòng từ cuối bảng về đầu). Chữ số và dấu chấm than giữ nguyên.