题解 | #DNA序列#

DNA序列

http://www.nowcoder.com/practice/e8480ed7501640709354db1cc4ffd42a

滑动窗口

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String original = scan.nextLine();
        char[] chrs = original.toCharArray();
        int len = Integer.valueOf(scan.nextLine().trim());
        int ans = 0;
        int ml = 0;
        int acc = 0;
        LinkedList<Integer> ll = new LinkedList<>();
        for (int i = 0; i < chrs.length; i++) {
            char currentChr = chrs[i];
            ll.add(i);
            if (currentChr == 'C' || currentChr == 'G') {
                acc++;
            }
            if (!ll.isEmpty() && ll.peekFirst() == i - len) {
                if (chrs[ll.peekFirst()] == 'C' || chrs[ll.peekFirst()] == 'G') {
                    acc--;
                }
                ll.removeFirst();
            }
            if (i >= len - 1) {
                if (acc > ml) {
                    ml = acc;
                    ans = ll.peekFirst();
                }
            }
        }
        System.out.println(original.substring(ans, ans + len));
    }
}
全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-27 11:42

相关推荐

07-09 19:25
门头沟学院 Java
这是要把每一个投校招的都开盒吗?
26届之耻将大局逆转:裁人的时候一次性追回餐费
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务