问题形容

生物的基因都是由4种不同的碱基形成,个别用A, T,G、c示意这4种碱基。碱基之间能够配对形成碱基对,在配对时只能A和T配对, G和c配对。配对的碱基对按某种程序连接成螺旋的梯子状,组成了基因。

一般而言,示意一个基因只须要应用一测的碱T基序列即可。例如,应用AGTC来示意一个基因片段时,可知其对应的另一侧的基因片段是TCAG当初给了一段较长的基因片段L和一段较短的基因片段s,请问基因片段s是否能和L中的某一段正好配对。咱们说一段基因能和另一段基因配对是指这段基因中的每个碱基和另一段中对应地位的碱基配对。因碱基具备方向性,因而在配对的时候不能倒序。例如,若L=ATCAAATCG, S=TTTAG,则S能和L中的一段正好配对,配对的段为AAATC,它是从L的第4个地位开始的。

例如,若L=ATCAAATCG, S=TTTAG,则S能和L中的一段正好配对,配对的段为AAATC,它是从L的第4个地位开始的。

代码
package Ring1270.pra.java01;import java.util.Locale;import java.util.Scanner;/** * DNA base pairs * */public class C_01String {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        System.out.printf("Input system DNA:");        String L = scanner.nextLine().toUpperCase(Locale.ROOT);        System.out.printf("Input your DNA:");        String S = scanner.nextLine().toUpperCase(Locale.ROOT);        StringBuffer stringBuffer = new StringBuffer();        char[] C = S.toCharArray();        for (int i = 0; i < C.length; i++) {            if ('A' == C[i]) {                C[i] = 'T';                stringBuffer.append(C[i]);                continue;            }            if ('T' == C[i]) {                C[i] = 'A';                stringBuffer.append(C[i]);                continue;            }            if ('C' == C[i]) {                C[i] = 'G';                stringBuffer.append(C[i]);                continue;            }            if ('G' == C[i]) {                C[i] = 'C';                stringBuffer.append(C[i]);                continue;            }        }        System.out.println(stringBuffer);        System.out.println(L.indexOf(String.valueOf(stringBuffer)) + 1);    }}