一个java问题,尝试了半天还是整不出来

img


找不到类似的,目前没有什么思路,现在就是干着急,有无会的帮忙看看,谢谢


s=input('Please input the Gene String:\r\n')
endsplit=['TAG','TAA','TGA']
if 'ATG' in s:
    for i in s.split('ATG'):
        for j in endsplit:
            if j in i:
                print(i.split(j)[0], end='\t')
else:
    print('no gene is found')

提供Python查找基因的思路,期望对你有所帮助

测试截图:

img

代码实现如下:

//2022.10.18 11:42 Code_流苏
import java.util.Date;
import java.util.Scanner;

import javax.swing.*;

public class demo{
    //找出基因
    public static void main(String[]args){
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a genome string : ");
        String s = input.nextLine();
        int index = 0;
        int newindex = 0;
        boolean flagForFirst = true;//是否有基因存在判断标志
        //基因存在判断
        while(true){
            index = s.indexOf("ATG",newindex);
            //如果找不到或超出字符串范围结束判断
            if(!(index < s.length() - 2 && index >= 0)){
                if(flagForFirst){
                    System.out.println("no gene is found!");
                    break;
                }
                else
                    break;
            }
            //将三个字符组合成基因
            StringBuilder sb = new StringBuilder();
            sb.append(s.charAt(index+3));
            sb.append(s.charAt(index+4));
            sb.append(s.charAt(index+5));
            String stringForGenome = sb.toString();
            //是否是结束基因
            if(stringForGenome == "TAG" || stringForGenome == "TAA"
                    || stringForGenome == "TGA")
                break;
            else{
                while(true){
                    sb = new StringBuilder();
                    sb.append(s.charAt(index+3));
                    sb.append(s.charAt(index+4));
                    sb.append(s.charAt(index+5));
                    stringForGenome = sb.toString();
                    if(stringForGenome.equals("TAG") || stringForGenome.equals("TAA")
                            || stringForGenome.equals("TGA"))
                        break;
                    else{
                        System.out.print(stringForGenome);
                        flagForFirst = false;
                    }
                    index = index + 3;//继续判断后三位字符是否是基因
                }
            }
            newindex = index + 3;//从新的基因点出发继续判断
            System.out.println();//第一段基因结束,换行
        }
    }
}

如有帮助,还请采纳!谢谢!

没看懂,为啥TTT和GGGCGT是输出结果???

题干又问题吧,这就有歧义

img