在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。

区块链毕设网qklbishe.com为您提供问题的解答

在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。

注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。

import java.util.*;   public class Solution {     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      *       * @param start string字符串       * @param end string字符串       * @param bank string字符串一维数组       * @return int整型      */     public int minMutation (String start, String end, String[] bank) {         // write code here         if(bank.length==0){             return -1;         }         HashSet<String> set=new HashSet<>(Arrays.asList(bank));         if(!set.contains(end)){             return 0;         }         Queue<String> queue=new LinkedList<>();         queue.add(start);         int sum=0;         while(!queue.isEmpty()){             int size=queue.size();             sum++;             for(int i=0;i<size;i++){                 String word=queue.poll();                 char arr[]=word.toCharArray();                 for(int j=0;j<arr.length;j++){                     char c=arr[j];                     for(char k='A';k<='Z';k++){                         arr[j]=k;                         String newWord=new String(arr);                         if(end.equals(newWord)){                             return sum;                         }                         if(set.contains(newWord)){                             queue.add(newWord);                             set.remove(word);                         }                     }                     arr[j]=c;                 }             }         }         return -1;     } }

05:37

以上就是关于问题在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。