题解 | #DNA序列#
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String str = in.nextLine();
int n=in.nextInt();
Map<Double,String> map=new HashMap<>();
for(int i=0;i<str.length()-n+1;i++){
//从左到右开始截取字串
String s=str.substring(i,i+n);
//计算字串中G和C的比例
int countC=0;
int countG=0;
for(int j=0;j<s.length();j++){
char ch=s.charAt(j);
if(ch=='C'){
countC++;
}
if(ch=='G'){
countG++;
}
}
//G、C比例
double rateGC=(countC+countG)*1.00000/n;
String value=map.get(rateGC);
if(value==null){
//按GC比例从小到大排序
map.put(rateGC,s);
}
}
Set<Double> keySet=map.keySet();
List<Double> list=new ArrayList<Double>(keySet);
double max=list.get(0);
for(int i=0;i<list.size();i++){
double rate=list.get(i);
if(rate>max){
max=rate;
}
}
String result=map.get(max);
System.out.println(result);
}
}
}
api大拿,啥也不是