Xử lý chuỗi
Mô tả
Ban Chấp hành Đoàn Thanh Niên Cộng sản Hồ Chí Minh của một trường đại học vừa nhận được một thông điệp cũ được lưu dưới dạng mã ASCII thập phân. Mỗi từ trong thông điệp là một số nguyên dương, các từ cách nhau đúng một khoảng trắng. Nhiệm vụ của bạn là đóng vai "Nexus Engine" — một công cụ biên dịch ngữ cảnh — để chuyển chuỗi mã này thành thông điệp tiếng Việt có thể đọc được.
Quy trình biên dịch rất rõ ràng:
- Tách chuỗi mã theo khoảng trắng, thu được một danh sách các số nguyên.
- Đổi mỗi số nguyên thành đúng một ký tự ASCII tương ứng (theo bảng mã chuẩn).
- Ghép các ký tự lại theo thứ tự để tạo thành thông điệp đầu ra.
- Cuối cùng, xử lý thông điệp theo quy ước bảng điều khiển: nếu ký tự cuối cùng là dấu chấm (
46), ta giữ nguyên; nếu ký tự cuối cùng là dấu chấm than (33), ta đổi thành dấu chấm câu; nếu không kết thúc bởi dấu chấm hay dấu chấm than, ta thêm một dấu chấm vào cuối.
Đầu vào
Một chuỗi s gồm nhiều số thập phân phân tách bằng khoảng trắng. Độ dài chuỗi không vượt quá 1000 ký tự.
Đầu ra
Trả về một chuỗi là thông điệp đã được giải mã và xử lý dấu câu cuối theo quy ước trên.
Ràng buộc
- Mỗi số nguyên trong chuỗi nằm trong khoảng từ 32 đến 122 (ký tự ASCII in được).
- Số lượng mã trong chuỗi từ 1 đến 300.
Ví dụ
Ví dụ 1:
- Đầu vào:
"84 104 97 110 104 32 110 105 101 110 33" - Giải thích từng bước:
84→T,104→h,97→a,110→n,104→h,32→(khoảng trắng).110→n,105→i,101→e,110→n,33→ .