在一个基因实验中,有一个由 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链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个基因实验中,有一个由 8 个字符组成的基因序列 start,每个字符都是 ‘A’、’C’、’G’ 和 ‘T’ 之一。实验需要将 start 变为另一个基因序列 end。每次实验只能改变 start 中的一个字符。实验中有一个基因库 bank,只有基因库中的基因才是有效的基因序列,即变化后的基因必须在基因库中找到。给定 start、end 和 bank,请找出并返回能够使 start 变化为 end 所需的最少变化次数。如果无法完成此基因变化,返回 -1。 注意:起始基因序列 start 默认是有效的,但是它并不一定会出现在基因库中。