题解 | #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大拿,啥也不是