题解 | #DNA序列#

DNA序列

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

暴力解法:滑动窗口,依次遍历字符串,并记录CG比例最高的字串即可。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String str = in.next();
            int len = in.nextInt();

            //暴力解法:遍历 str 得到它的不同的长度为 len 的子串
            //并记录这些字串的比例,最终输出比例最高,并且最靠前的子串即可。
            int index1 = 0,index2 = 0,maxLen = 0;
            float maxRatio = 0;
            for(int i=0;i<str.length()-len+1;i++){  //注意此处的 i 的取值范围
                int count = 0;  //记录CG出现的次数
                for(int j = i;j < i+len;j++){
                    if(str.charAt(j) == 'C' || str.charAt(j) == 'G') count++;
                }
                //将当前的最大的比例替换,并记录索引,由于需要比当前的比例大,所以相等的情况就不会记录下来了
                if((float)count/len > maxRatio){
                    maxRatio = (float)count/len;
                    index1 = i;
                    index2 = i+len-1;
                }
            }
            System.out.println(str.substring(index1,index2 + 1));
        }
    }
}
全部评论

相关推荐

KPLACE:首先是板面看起来不够,有很多奖,比我厉害。项目要精减,大概详细描述两到三个,要把技术栈写清楚,分点,什么算法,什么外设,怎么优化,不要写一大堆,分点,你写上去的目的,一是让别人知道你做了这个知识点,然后在面试官技术面的时侯,他知道你会这个,那么就会跟你深挖这个,然后就是个人评价改为专业技能
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务