DNA序列 滑动窗口
DNA序列
https://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a
import java.util.*; public class Main { private static String maxGCRatio(String s,int n){ HashMap<Character,Integer> window = new HashMap<>(); int left = 0,right = 0; int start = 0,ratio =Integer.MIN_VALUE; while(right<s.length()){ char c = s.charAt(right); right++; window.put(c,window.getOrDefault(c,0)+1); while(right-left>=n){ if(window.getOrDefault('G',0)+window.getOrDefault('C',0)>ratio){ ratio = window.getOrDefault('G',0)+window.getOrDefault('C',0); start = left; } char d = s.charAt(left); left++; window.put(d,window.getOrDefault(d,0)-1); } } return ratio==Integer.MIN_VALUE? "": s.substring(start,start+n); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int n = sc.nextInt(); System.out.println(maxGCRatio(s,n)); } }