1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-01-27 18:50:26 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
leetcode-problemset/leetcode-cn/problem (Chinese)/最小基因变化 [minimum-genetic-mutation].html

49 lines
2.0 KiB
HTML
Raw Normal View History

2023-12-09 18:42:21 +08:00
<p>基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 <code>'A'</code><code>'C'</code><code>'G'</code><code>'T'</code> 之一。</p>
2022-03-27 20:52:13 +08:00
2023-12-09 18:42:21 +08:00
<p>假设我们需要调查从基因序列&nbsp;<code>start</code> 变为 <code>end</code> 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。</p>
2022-03-27 20:52:13 +08:00
2023-12-09 18:42:21 +08:00
<ul>
<li>例如,<code>"AACCGGTT" --&gt; "AACCGGTA"</code> 就是一次基因变化。</li>
</ul>
2022-03-27 20:52:13 +08:00
2023-12-09 18:42:21 +08:00
<p>另有一个基因库 <code>bank</code> 记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。(变化后的基因必须位于基因库 <code>bank</code> 中)</p>
2022-03-27 20:52:13 +08:00
2023-12-09 18:42:21 +08:00
<p>给你两个基因序列 <code>start</code><code>end</code> ,以及一个基因库 <code>bank</code> ,请你找出并返回能够使&nbsp;<code>start</code> 变化为 <code>end</code> 所需的最少变化次数。如果无法完成此基因变化,返回 <code>-1</code></p>
2022-03-27 20:52:13 +08:00
2023-12-09 18:42:21 +08:00
<p>注意:起始基因序列&nbsp;<code>start</code> 默认是有效的,但是它并不一定会出现在基因库中。</p>
2022-03-27 20:52:13 +08:00
2023-12-09 18:42:21 +08:00
<p>&nbsp;</p>
2022-03-27 20:52:13 +08:00
<p><strong>示例 1</strong></p>
<pre>
2023-12-09 18:42:21 +08:00
<strong>输入:</strong>start = "AACCGGTT", end = "AACCGGTA", bank = ["AACCGGTA"]
<strong>输出:</strong>1
2022-03-27 20:52:13 +08:00
</pre>
<p><strong>示例 2</strong></p>
<pre>
2023-12-09 18:42:21 +08:00
<strong>输入:</strong>start = "AACCGGTT", end = "AAACGGTA", bank = ["AACCGGTA","AACCGCTA","AAACGGTA"]
<strong>输出:</strong>2
2022-03-27 20:52:13 +08:00
</pre>
<p><strong>示例 3</strong></p>
<pre>
2023-12-09 18:42:21 +08:00
<strong>输入:</strong>start = "AAAAACCC", end = "AACCCCCC", bank = ["AAAACCCC","AAACCCCC","AACCCCCC"]
<strong>输出:</strong>3
2022-03-27 20:52:13 +08:00
</pre>
2023-12-09 18:42:21 +08:00
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>start.length == 8</code></li>
<li><code>end.length == 8</code></li>
<li><code>0 &lt;= bank.length &lt;= 10</code></li>
<li><code>bank[i].length == 8</code></li>
<li><code>start</code><code>end</code><code>bank[i]</code> 仅由字符 <code>['A', 'C', 'G', 'T']</code> 组成</li>
</ul>