來源:2017年校招全國統(tǒng)一模擬筆試(第五場)編程題集合
時(shí)間限制:1秒
空間限制:32768K
牛牛從生物科研工作者那里獲得一段字符串?dāng)?shù)據(jù)s,牛牛需要幫助科研工作者從中找出最長的DNA序列。DNA序列指的是序列中只包括'A','T','C','G'。牛牛覺得這個(gè)問題太簡單了,就把問題交給你來解決。
例如: s = "ABCBOATER"中包含最長的DNA片段是"AT",所以最長的長度是2。
輸入描述:
輸入包括一個(gè)字符串s,字符串長度length(1 ≤ length ≤ 50),字符串中只包括大寫字母('A'~'Z')。
輸出描述:
輸出一個(gè)整數(shù),表示最長的DNA片段
輸入例子1:
ABCBOATER
輸出例子1:
2
分析
簡單題。思路就是直接暴力搜索。從第一個(gè)字母開始判斷,找到最長的,再從第二個(gè)字母開始。
代碼
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
in.close();
System.out.println(helper(s));
}
private static int helper(String s) {
String source = "ATGC";
int res = 0;
for(int i=0;i<s.length();i++) {
if(source.indexOf(s.charAt(i) + "") != -1) {
int index = i;
index++;
while(index < s.length() && source.indexOf(s.charAt(index) + "") != -1) {
index++;
}
if((index - i) > res)
res = index-i;
}
}
return res;
}
}