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));
        
    }
}

全部评论

相关推荐

牛客10001:问就是六个月,全国可飞,给钱就干
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务