[Buổi 20][Chuỗi][RDD] Bài 25: Lưu trữ ADN
Lưu trữ ADN
Bối cảnh
FullHouse Dev đang nghiên cứu về việc mã hóa chuỗi nhị phân thành chuỗi DNA. Họ cần một chương trình để thực hiện việc mã hóa này theo quy tắc sau:
Yêu cầu
- 00 được thay thế bằng A
- 01 được thay thế bằng T
- 10 được thay thế bằng C
- 11 được thay thế bằng G
Cho một chuỗi nhị phân S có độ dài N (N là số chẵn), hãy tìm chuỗi DNA tương ứng sau khi mã hóa.
Input
- Dòng đầu tiên chứa số nguyên T — số lượng bộ test.
- Mỗi bộ test gồm hai dòng:
- Dòng đầu tiên chứa một số nguyên N — độ dài của chuỗi nhị phân.
- Dòng thứ hai chứa chuỗi nhị phân S có độ dài N.
Output
- Với mỗi bộ test, in ra một dòng duy nhất chứa chuỗi DNA sau khi mã hóa.
Ràng buộc
- \(1 ≤ T ≤ 100\)
- \(2 ≤ N ≤ 10^3\)
- \(N là số chẵn.\)
- \(Tổng của N trong tất cả các bộ test không vượt quá 10^3.\)
- \(S chỉ chứa các ký tự 0 và 1.\)
Ví dụ 1
Input
4
2
00
4
0011
6
101010
4
1001
Output
A
AG
CCC
CT
Giải thích ví dụ
- Test 1: 00 được mã hóa thành A.
- Test 2: 00 được mã hóa thành A, 11 được mã hóa thành G. Vì vậy, chuỗi mã hóa là AG.
- Test 3: Mỗi cặp 10 được mã hóa thành C. Do đó, chuỗi mã hóa là CCC.
- Test 4: 10 được mã hóa thành C, 01 được mã hóa thành T. Vì vậy, chuỗi mã hóa là CT.
Thông tin học tập
- Buổi: B20
- Concepts: std::string, getline, index, find, substr, basic transformations
- Giới hạn kiến thức: B01-B20
- Time limit: 2 seconds
- Memory limit: 64 MB
- Point: 20
Comments