[Buổi 21][Xử lý chuỗi][RDD] Bài 7: Mã hóa tin nhắn
Mã hóa tin nhắn
Bối cảnh
An và Bình là đôi bạn thân, thường sử dụng điện thoại hoặc email để nhắn tin cho nhau. Vì không muốn người khác đọc được nội dung tin nhắn nên họ đã mã hóa các tin nhắn trước khi gửi đi theo quy tắc: trong tin nhắn, họ đã thay mỗi chữ cái bằng chữ cái đằng sau nó \(K\) vị trí trong bảng chữ cái (tiếng Anh). Việc tìm kiếm và thay thế được tiến hành theo quy tắc vòng tròn, nghĩa là sau ký tự A là ký tự B, sau ký tự B là ký tự C,... sau ký tự Y là ký tự Z, sau ký tự Z là ký tự A. Các ký tự ngoài bảng chữ cái vẫn được giữ nguyên.
Yêu cầu
Yêu cầu: Cho trước một tin nhắn và một số nguyên \(K\). Hãy xác định tin nhắn sau khi đã được mã hóa theo quy tắc trên.
Input
Dòng đầu tiên chứa số nguyên \(K\) \((1\leq K\leq 20)\).
Dòng thứ hai chứa xâu ký tự \(S\), là tin nhắn trước khi được mã hóa (độ dài xâu \(S\) không quá \(1000\) ký tự - không phân biệt chữ hoa hay thường).
Output
Một dòng duy nhất là xâu tin nhắn sau khi đã được mã hóa (toàn bộ tin nhắn được viết bằng chữ in hoa).
Ràng buộc
Đề gốc không nêu ràng buộc riêng.
Ví dụ 1
Input
2
TIN NHAN XYZ
Output
VKP PJCP ZAB
Giải thích ví dụ
Ví dụ: Tin nhắn là
TIN NHAN XYZvớiK = 2- Giải thích: Mỗi chữ cái được thay thế bằng chữ cái đứng sau 2 vị trí, kết quả là
VKP PJCP ZAB.
- Giải thích: Mỗi chữ cái được thay thế bằng chữ cái đứng sau 2 vị trí, kết quả là
Ví dụ: Tin nhắn là
HELLOvớiK = 3- Giải thích: Chữ cái
Htrở thànhK,EthànhH, và tiếp tục, kết quả làKHOOR.
- Giải thích: Chữ cái
Thông tin học tập
- Buổi: B21
- Concepts: std::string, tokenization, validation, processing pipelines
- Giới hạn kiến thức: B01-B21
- Time limit: 1 second
- Memory limit: 20 MB
- Point: 15
Comments