Đề bài:
Biến đổi xâu S chỉ gồm kí tự A, G, T, C theo quy tắc sau:
- A chuyển thành T và ngược lại;
- G chuyển thành C và ngược lại:
- đảo ngược xâu vừa tạo thành;
Ví dụ
Cho xâu AGTC biến thành TCAG, đảo ngược ta được GACT;
Hãy viết hàm sau để xử lý bài toán trên:
std::vector<std::string> geneticMicroRobots(int n, std::vector<std::string> sequences) {
}
Đưa vào là n số lượng xâu và một vector chưa n xâu đó;
Đầu ra là một vector string tương ứng đã được biến đổi.
Đây là code ngắn nhất mà em có thể viết được (169 kí tự không kể dấu cách và xuống dòng), nhưng đó chưa phải là code tối ưu nhất. Có ai có thể viết ngắn hơn không?
auto geneticMicroRobots(int n, auto x)
{
int i;
while(n-i)
{
std::string t;
for(int c:x[i])
t=char(149 - c - 11*(c%4 > 1))+t;
x[i++]=t;
}
return x;
}