Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Mã hóa và Giải mã ký tự vòng tròn
Giả sử bạn có một bảng chữ cái gồm các ký tự từ A đến Z và a đến z, xếp theo dạng vòng tròn, nghĩa là sau Z sẽ quay lại A và sau z sẽ quay lại a. Một cách mã hóa đơn giản có thể thực hiện như sau: mỗi ký tự sẽ được thay thế bằng ký tự đứng sau nó N vị trí trong bảng chữ cái vòng tròn.
Câu hỏi 1: Mã hóa xâu ký tự
Cho một số nguyên N (0 ≤ N ≤ 25) và một xâu ký tự S (chỉ chứa các chữ cái từ A đến Z và a đến z). Hãy viết chương trình mã hóa xâu S bằng cách thay thế mỗi ký tự trong xâu S bằng ký tự đứng sau nó N vị trí trong bảng chữ cái vòng tròn.
Câu hỏi 2: Giải mã xâu ký tự
Cho xâu ký tự đã mã hóa S' và số nguyên N, bạn hãy viết chương trình giải mã xâu S' trở lại xâu ký tự ban đầu.
Yêu cầu:
Hãy xây dựng một chương trình có thể mã hóa và giải mã một xâu ký tự dựa trên N.
Xử lý các trường hợp khi N bằng 0, tức là không thay đổi gì.
Xử lý trường hợp các ký tự có thể là chữ hoa (A-Z) hoặc chữ thường (a-z).
Bạn cần phải giải thích cách thức mã hóa và giải mã từng ký tự.
Ví dụ:
Input:
- Dòng đầu tiên chứa hai số nguyên k và m (0 ≤ k, m ≤ 25).
- Dòng thứ hai chứa một xâu ký tự S (chỉ chứa các chữ cái từ A đến Z và a đến z).
Output:
- In ra xâu ký tự đã mã hóa.
- In ra xâu ký tự đã giải mã từ xâu mã hóa.
Ví dụ 1:
Input:
k = 7 m = 3
S = "anh"
Output:
Mã hóa: "hua"
Giải mã: "dan"
Bình luận