AT_genocon2021_a Practice 1

题目描述

[problemUrl]: https://atcoder.jp/contests/genocon2021/tasks/genocon2021_a $s$ 是一个由字母 A、C、G、T 组成的长度为 $N$ 的字符串。$s$ 的第 $i$ 个字符记作 $s[i]$($1 \leq i \leq N$)。现在,定义 A、C、G、T 四个字母的互补字符:A 的互补字符为 T,T 的互补字符为 A,C 的互补字符为 G,G 的互补字符为 C。对于任意字符 $a$,其互补字符记作 $R(a)$。 对于字符串 $s$,其逆互补链序列定义如下:$R(s[N]),\ R(s[N-1]),...,\ R(s[2]),\ R(s[1])$。 例如,AACGT 的逆互补链序列为 ACGTT。 请对于输入的 $m$ 个字符串 $s_1$,...,$s_m$,分别输出它们的逆互补链序列。

输入格式

输入以如下格式从标准输入给出: > $m$ $s_1$ $s_2$ $...$ $s_m$

输出格式

请输出每个输入字符串的逆互补链序列。每个逆互补链序列占一行,输出顺序与输入字符串顺序一致。

说明/提示

### 限制条件 - $s_1$,...,$s_m$ 均为由 A、C、G、T 组成的字符串。 - $1 \leq m \leq 100$。 - $1 \leq |s_1|,\ \ldots,\ |s_m| \leq 1000$(字符串 $x$ 的长度记作 $|x|$)。 ### 问题背景 ※ ***本项内容非解题必读,仅为出题背景,有兴趣者可阅读。*** ### DNA 与碱基序列 生物体所需的遗传信息保存在 DNA 中。那么,DNA 是如何携带遗传信息的呢? 由核苷酸链状连接而成的物质称为单链 DNA。DNA 是由两条长度相同且互为对应关系的单链 DNA 结合形成的螺旋结构物质。这里首先介绍单链 DNA。构成单链 DNA 的每个核苷酸都含有一个碱基。碱基有腺嘌呤(adenin)、胞嘧啶(cytosin)、鸟嘌呤(guanine)、胸腺嘧啶(thymine)四种。因此,从链的一端依次读取各核苷酸的碱基,可以将其视为由四种符号组成的序列。由于链的两端可根据核苷酸结构分别称为 5' 末端和 3' 末端,一般从 5' 端到 3' 端的方向读取符号并视为序列。**这个序列称为 DNA 序列、碱基序列或基因组序列等。**序列的每个元素用碱基的首字母表示。例如如下图所示,从 5' 末端到 3' 末端依次为腺嘌呤、胞嘧啶、胞嘧啶、胸腺嘧啶,则记作 ACCT。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_genocon2021_a/7007450f39dec58fdb3be30660852e35d3646cb6.png) ### DNA 的结构与逆互补链 单链 DNA 的每个碱基都具有与特定其他碱基结合的性质。具体来说,腺嘌呤(A)与胸腺嘧啶(T)结合,胞嘧啶(C)与鸟嘌呤(G)结合。构成 DNA 的两条链,其碱基排列使得相对的碱基都能结合,因此两条链不会分离,能够形成双螺旋结构。需要注意的是,两条链的方向是相反的。下图中,下方的链从 5' 末端到 3' 末端依次为腺嘌呤(A)、胞嘧啶(C)、胸腺嘧啶(T)、鸟嘌呤(G)。上方的链从 5' 末端到 3' 末端依次为胞嘧啶(C)、腺嘌呤(A)、鸟嘌呤(G)、胸腺嘧啶(T),每个碱基都与下方链的对应碱基结合。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_genocon2021_a/b2bed86e925a5bdc191f8827b1262f327d2368d0.png) 对于形成双螺旋的一条链,另一条链称为**逆互补链**。如图例所示,下方链的碱基序列为 ACTG,其逆互补链(上方链)的碱基序列为 CAGT。(注意不是 TGAC。)由于两条链的碱基排列互为对应,DNA 可以说是以双份形式保存相同信息。生物体还具备根据一条链修复另一条链损伤的机制。 因此,DNA 的遗传信息可以根据读取哪一条链而用两种不同的碱基序列表达。例如,DNA 某一部分记作 AGGC 时,其逆互补链的碱基序列 GCCT 也可视为相同的信息。 由 ChatGPT 4.1 翻译