首页 > 试题广场 >

DNA合成

[编程题]DNA合成
  • 热度指数:2956 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
DNA分子是以4种脱氧核苷酸为单位连接而成的长链,这4种脱氧核苷酸分别含有A,T,C,G四种碱基。碱基互补配对原则:A和T是配对的,C和G是配对的。如果两条碱基链长度是相同的并且每个位置的碱基是配对的,那么他们就可以配对合成为DNA的双螺旋结构。现在给出两条碱基链,允许在其中一条上做替换操作:把序列上的某个位置的碱基更换为另外一种碱基。问最少需要多少次让两条碱基链配对成功

输入描述:
输入包括一行: 包括两个字符串,分别表示两条链,两个字符串长度相同且长度均小于等于50。


输出描述:
输出一个整数,即最少需要多少次让两条碱基链配对成功
示例1

输入

ACGT TGCA

输出

0

import java.util.Scanner;

public class  Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.next();
        String s2 = sc.next();
        if (s1 == null || s2 == null ||
                s1.length() != s2.length() ||
                s1.isEmpty() || s2.isEmpty()) {
            return;
        }
        int count = 0;
        for (int i = 0; i < s1.length(); i ++) {
            if (s1.charAt(i) == 'A' && s2.charAt(i) == 'T') continue;
            if (s1.charAt(i) == 'T' && s2.charAt(i) == 'A') continue;
            if (s1.charAt(i) == 'C' && s2.charAt(i) == 'G') continue;
            if (s1.charAt(i) == 'G' && s2.charAt(i) == 'C') continue;
            count ++;
        }
        System.out.println(count);

    }
}
先判断输入的字符串是否为空,长度是否相等。然后注意比较即可。

发表于 2017-03-12 13:03:41 回复(0)

热门推荐

通过挑战的用户