1 条题解
-
0
【例34.2】 配对碱基链
解题思路
逐字符按 A↔T、G↔C 映射,位置不改变,生成互补链。
正确性说明
按上述推导执行:每次仅处理当前输入或当前步骤,并把它对答案的贡献计入对应状态。所有需要处理的情况均被覆盖,结束时保存的量就是题目所求。
易错点
互补不是反转,不要倒序输出。
复杂度
串长 L,时间 O(L),空间 O(L)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); string s; cin >> s; for (char &c : s) { if (c == 'A') c = 'T'; else if (c == 'T') c = 'A'; else if (c == 'G') c = 'C'; else c = 'G'; } cout << s << "\n"; return 0; }
- 1