一、题目链接
http://noi.openjudge.cn/ch0107/07/
二、解题思路
◎ 循环遍历给定碱基链的每个碱基:
→ 如果当前碱基是A,互补碱基是T;
否则如果当前碱基是T,互补碱基是A;
否则如果当前碱基是C,互补碱基是G;
否则,当前碱基是G,互补碱基是C。
三、实施步骤
◆ 方法public String basePair(String chain)处理所有业务逻辑:
→ 参数chain为String类型的对象,代表给定碱基链;
→ 方法basePair返回String类型的对象,代表chain的互补碱基链。
◇ 方法basePair实施步骤如下:
◎ 首先,定义int类型的整数n,代表chain及其互补碱基链的长度,初始时n=chain.length();
◎ 其次,定义char[] chars=chain.toCharArray(),将chain的内容转存为字符数组处理;
◎ 然后,定义char[] ans=new char[n],存储chain的互补碱基链;
◎ 第四,通过标记i代表每个碱基的位置,i从0开始,到n-1为止,更新步长为1,循环处理如下:
→ 如果chars[i]=='A':令ans[i]='T';
否则如果chars[i]=='T':令ans[i]='A';
否则如果chars[i]=='C',令ans[i]='G';
否则,令ans[i]='C';
◎ 最后,返回String.valueOf(ans)。
◇ 在方法main中输入给定碱基链,将其作为参数注入方法basePair,输出计算结果。
四、Java程序
import java.util.Scanner;
public class Main {
public String basePair(String chain) {
int n = chain.length();
char[] chars = chain.toCharArray();
char[] ans = new char[n];
for (int i = 0; i < n; i++) {
if (chars[i] == 'A') {
ans[i] = 'T';
}
else if (chars[i] == 'T') {
ans[i] = 'A';
}
else if (chars[i] == 'C') {
ans[i] = 'G';
}
else {
ans[i] = 'C';
}
}
return String.valueOf(ans);
}
public static void main(String[] args) {
Main test = new Main();
Scanner input = new Scanner(System.in);
String chain = input.next();
System.out.print(test.basePair(chain));
}
}