题解 | #DNA序列#

DNA序列

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

import java.util.*;

// 奥里给
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String next = scanner.nextLine();
            int n = scanner.nextInt();
            String[] split = next.split("");
            LinkedHashMap<String, Integer> lhm = new LinkedHashMap<>();
            for (int i = 0; i <split.length; i++) {
                if (split[i].matches("[CG]{1}")){
                    String five="";
                    if (i+n<= split.length) {
                        five = next.substring(i, i + n);
                    }else {
                        five = next.substring(i);
                    }
                    String[] split1 = five.split("");
                    int value=0;
                    for (int j = 0; j < split1.length; j++) {
                        if (split1[j].equals("C")||split1[j].equals("G")){
                            value=value+1;
                        }
                    }
                    lhm.put(five,value);
                }
            }
            ArrayList<Integer> integers = new ArrayList<>();
            for (String key:lhm.keySet()){
                integers.add(lhm.get(key));
            }
            Collections.sort(integers);
            for (String key:lhm.keySet()){
                if (lhm.get(key)==integers.get(integers.size()-1)){
//                    System.out.println(key);
                    String result = "";
                    char[] chars = key.toCharArray();
                    for (int i = chars.length - 1; i >= 0; i--) {
                        result = result + chars[i];
                    }
//                    System.out.println("颠倒"+result);
                    String[] split2 = result.split("");
                    int sub=0;
                    for (int i = 0; i <split2.length; i++) {
                        if (!split2[i].matches("[C]")&&!split2[i].matches("[G]")){
                            sub=sub+1;
                        } else if (split2[i].matches("[C]")||split2[i].matches("[G]")) {
                            break;
                        }
                    }
//                    System.out.println(sub);
                    key=key.substring(0,key.length()-sub);
//                    System.out.println("原初"+key);
                    String[] split3 = next.split(key);
                    String s ="";
                    String s1 ="";//右侧拆分
                    if (split3.length!=0) {
                        s = split3[0];
                        s1= split3[1];
                    }
//                    System.out.println("左侧拆分"+s);
                    String success="";
                    int count=0;
                    if (!s.equals("")) {
                        for (int i = s.length() - 1; i >= 0; i--) {
                            count++;
                            if (count <= sub) {
                                key = s.charAt(i) + key;
                            } else {
                                break;
                            }
                        }
                    }

                    if (key.length()<n){
                        key=key+s1.substring(0,0+(n- key.length()));
                    }
                    System.out.println(key);
                    break;
                }
            }
            
        }
    }
}

全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
442240次浏览 4509人参与
# 春招别灰心,我们一人来一句鼓励 #
41913次浏览 531人参与
# 阿里云管培生offer #
120215次浏览 2219人参与
# 地方国企笔面经互助 #
7961次浏览 18人参与
# 同bg的你秋招战况如何? #
76585次浏览 561人参与
# 虾皮求职进展汇总 #
115499次浏览 886人参与
# 北方华创开奖 #
107423次浏览 599人参与
# 实习,投递多份简历没人回复怎么办 #
2454609次浏览 34856人参与
# 实习必须要去大厂吗? #
55761次浏览 961人参与
# 提前批简历挂麻了怎么办 #
149889次浏览 1977人参与
# 投递实习岗位前的准备 #
1195913次浏览 18548人参与
# 你投递的公司有几家约面了? #
33205次浏览 188人参与
# 双非本科求职如何逆袭 #
662189次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4751次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157622次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11535次浏览 284人参与
# 发工资后,你做的第一件事是什么 #
12682次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35793次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20120次浏览 240人参与
# 我的上岸简历长这样 #
452000次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39289次浏览 314人参与
# 非技术岗是怎么找实习的 #
155866次浏览 2120人参与
牛客网
牛客企业服务