JAVA面试题----最长DNA序列--java实现
2017-07-26 21:37
302 查看
题目:牛牛从生物科研工作者那里获得一段字符串数据s,牛牛需要帮助科研工作者从中找出最长的DNA序列。DNA序列指的是序列中只包括'A','T','C','G'。牛牛觉得这个问题太简单了,就把问题交给你来解决。
例如: s = "ABCBOATER"中包含最长的DNA片段是"AT",所以最长的长度是2。
import java.util.Scanner;
public class findDNA {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str=sc.nextLine();
getDnaNum(str);
}
private static void getDnaNum(String str) {
int tem=1;
int tmp=0;
int len=str.length();
char[] ch= str.toCharArray();
for(int i=0;i<len-1;i++){
if(ch[i]=='A' || ch[i]=='C' || ch[i]=='G'|| ch[i]=='T' ){
if(ch[i+1]=='A' ||ch[i+1]=='C' || ch[i+1]=='G'||ch[i+1]=='T' ){
tem++;
}
if(tem>tmp)
tmp=tem;
}else{
tem=1;
}
}
System.out.println(tmp);
}
}
例如: s = "ABCBOATER"中包含最长的DNA片段是"AT",所以最长的长度是2。
import java.util.Scanner;
public class findDNA {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str=sc.nextLine();
getDnaNum(str);
}
private static void getDnaNum(String str) {
int tem=1;
int tmp=0;
int len=str.length();
char[] ch= str.toCharArray();
for(int i=0;i<len-1;i++){
if(ch[i]=='A' || ch[i]=='C' || ch[i]=='G'|| ch[i]=='T' ){
if(ch[i+1]=='A' ||ch[i+1]=='C' || ch[i+1]=='G'||ch[i+1]=='T' ){
tem++;
}
if(tem>tmp)
tmp=tem;
}else{
tem=1;
}
}
System.out.println(tmp);
}
}
相关文章推荐
- 剑指Offer:面试题24——二叉搜索树的后序遍历序列(java实现)
- 剑指Offer 面试题33:二叉搜索树的后序遍历序列 Java代码实现
- 动态规划,最长回文子序列(java实现),输入character,算法应该返回carac
- 剑指offer--面试题24:二叉搜索树的后序遍历序列--Java实现
- 剑指Offer 面试题31:栈的压入、弹出序列 Java代码实现
- Java实现-最长上升连续子序列
- LIS 最长递增子序列 Java的简单实现
- “最长上升子序列,最大连续子序列和,最长公共子串”的Java实现
- 最长递增子序列-Java 实现
- 输出所有最长公用子序列的实现(Java)
- “最长上升子序列,最大连续子序列和,最长公共子串”的Java实现
- 最长递增子序列 LIS 时间复杂度O(nlogn)的Java实现
- Java实现求最长增长子序列长度,并输出该子序列值
- 剑指Offer:面试题22——栈的压入,弹出序列(java实现)
- 剑指offer面试题41_2 和为s的连续正数序列(java实现)
- 最长回文子序列 java递归实现
- LIS 最长递增子序列 Java实现
- 动态规划(背包问题,最长递增子序列,硬币问题)java实现
- 剑指offer--面试题22:栈的压入、弹出序列--Java实现
- Java程序练习-bridging signals----最长升序列