关于java:代码-基因子序列基因子序列问题

46次阅读

共计 953 个字符,预计需要花费 3 分钟才能阅读完成。

问题形容

生物的基因都是由 4 种不同的碱基组成, 个别用 A,T、G、C 示意这 4 种碱基。基因能够用按程序表白的一串碱基来表 , 例如 ATCACAGGT 最近, 小明最近在关注一个特地的碱基序列 S(S 也是由 A,T, G、C 组成), 他发现, 如果一个基因中如果能够按呈现的程序提取出一些碱基和 S 正好相等, 则这个基因可能具备某种性质。例如, 当 S -TCG 时, 咱们能够从基因 ATCACAGGT 中提出出第 2、3.7 个碱基和 S 相等, 而无奈从基因 CGT 提取出一部分碱基与 S 相等。当然, 能提取的地位可能是多样的, 比方咱们能够从基因 ATCACAGGT 中提出出第 2、58 个碱基和 S 相等。小明想晓得, 在相等时从基因中提取的最初一个碱基的序号最小是多少。

代码
package Ring1270.pra.java01;
import java.util.Locale;
import java.util.Scanner;
/**
 * https://www.lanqiao.cn/courses/2786/learning/?id=67029  DNA */public class C_02DNA {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);
        System.out.println("Input special base pairs S:");
        String S = scanner.nextLine().toUpperCase(Locale.ROOT);
        System.out.println("Input base pairs DNA:");
        String DNA = scanner.nextLine().toUpperCase(Locale.ROOT);
        For F = new For();
        System.out.println(F.for01(S,DNA,S.length()-1) + 1);
    }
}
class For {public int for01(String S, String DNA, int i){char[] D = S.toCharArray();
      int n;
      if (i == 0) {n=DNA.indexOf(D[0]);
      }else {n=DNA.indexOf(D[i],for01(S,DNA,i-1));
      }
      return n;
  }
}

正文完
 0