mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-09-05 15:31:43 +08:00
132 lines
4.9 KiB
HTML
132 lines
4.9 KiB
HTML
<p>表:<code>Samples</code></p>
|
||
|
||
<pre>
|
||
+----------------+---------+
|
||
| Column Name | Type |
|
||
+----------------+---------+
|
||
| sample_id | int |
|
||
| dna_sequence | varchar |
|
||
| species | varchar |
|
||
+----------------+---------+
|
||
sample_id 是这张表的唯一主键。
|
||
每一行包含一个 DNA 序列以一个字符(A,T,G,C)组成的字符串表示以及它所采集自的物种。
|
||
</pre>
|
||
|
||
<p>生物学家正在研究 DNA 序列中的基本模式。编写一个解决方案以识别具有以下模式的 <code>sample_id</code>:</p>
|
||
|
||
<ul>
|
||
<li>以 <strong>ATG</strong> <strong>开头</strong> 的序列(一个常见的 <strong>起始密码子</strong>)</li>
|
||
<li>以 <strong>TAA</strong>,<strong>TAG</strong> 或 <strong>TGA</strong> <strong>结尾</strong> 的序列(终止密码子)</li>
|
||
<li>包含基序 <strong>ATAT</strong> 的序列(一个简单重复模式)</li>
|
||
<li>有 <strong>至少</strong> <code>3</code> <strong>个连续</strong> <strong>G</strong> 的序列(如 <strong>GGG</strong> 或 <strong>GGGG</strong>)</li>
|
||
</ul>
|
||
|
||
<p>返回结果表以 sample_id <strong>升序</strong> 排序<em>。</em></p>
|
||
|
||
<p>结果格式如下所示。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong class="example">示例:</strong></p>
|
||
|
||
<div class="example-block">
|
||
<p><strong>输入:</strong></p>
|
||
|
||
<p>Samples 表:</p>
|
||
|
||
<pre class="example-io">
|
||
+-----------+------------------+-----------+
|
||
| sample_id | dna_sequence | species |
|
||
+-----------+------------------+-----------+
|
||
| 1 | ATGCTAGCTAGCTAA | Human |
|
||
| 2 | GGGTCAATCATC | Human |
|
||
| 3 | ATATATCGTAGCTA | Human |
|
||
| 4 | ATGGGGTCATCATAA | Mouse |
|
||
| 5 | TCAGTCAGTCAG | Mouse |
|
||
| 6 | ATATCGCGCTAG | Zebrafish |
|
||
| 7 | CGTATGCGTCGTA | Zebrafish |
|
||
+-----------+------------------+-----------+
|
||
</pre>
|
||
|
||
<p><strong>输出:</strong></p>
|
||
|
||
<pre class="example-io">
|
||
+-----------+------------------+-------------+-------------+------------+------------+------------+
|
||
| sample_id | dna_sequence | species | has_start | has_stop | has_atat | has_ggg |
|
||
+-----------+------------------+-------------+-------------+------------+------------+------------+
|
||
| 1 | ATGCTAGCTAGCTAA | Human | 1 | 1 | 0 | 0 |
|
||
| 2 | GGGTCAATCATC | Human | 0 | 0 | 0 | 1 |
|
||
| 3 | ATATATCGTAGCTA | Human | 0 | 0 | 1 | 0 |
|
||
| 4 | ATGGGGTCATCATAA | Mouse | 1 | 1 | 0 | 1 |
|
||
| 5 | TCAGTCAGTCAG | Mouse | 0 | 0 | 0 | 0 |
|
||
| 6 | ATATCGCGCTAG | Zebrafish | 0 | 1 | 1 | 0 |
|
||
| 7 | CGTATGCGTCGTA | Zebrafish | 0 | 0 | 0 | 0 |
|
||
+-----------+------------------+-------------+-------------+------------+------------+------------+
|
||
</pre>
|
||
|
||
<p><strong>解释:</strong></p>
|
||
|
||
<ul>
|
||
<li>样本 1(ATGCTAGCTAGCTAA):
|
||
<ul>
|
||
<li>以 ATG 开头(has_start = 1)</li>
|
||
<li>以 TAA 结尾(has_stop = 1)</li>
|
||
<li>不包含 ATAT(has_atat = 0)</li>
|
||
<li>不包含至少 3 个连续 ‘G’(has_ggg = 0)</li>
|
||
</ul>
|
||
</li>
|
||
<li>样本 2(GGGTCAATCATC):
|
||
<ul>
|
||
<li>不以 ATG 开头(has_start = 0)</li>
|
||
<li>不以 TAA,TAG 或 TGA 结尾(has_stop = 0)</li>
|
||
<li>不包含 ATAT(has_atat = 0)</li>
|
||
<li>包含 GGG(has_ggg = 1)</li>
|
||
</ul>
|
||
</li>
|
||
<li>样本 3(ATATATCGTAGCTA):
|
||
<ul>
|
||
<li>不以 ATG 开头(has_start = 0)</li>
|
||
<li>不以 TAA,TAG 或 TGA 结尾(has_stop = 0)</li>
|
||
<li>包含 ATAT(has_atat = 1)</li>
|
||
<li>不包含至少 3 个连续 ‘G’(has_ggg = 0)</li>
|
||
</ul>
|
||
</li>
|
||
<li>样本 4(ATGGGGTCATCATAA):
|
||
<ul>
|
||
<li>以 ATG 开头(has_start = 1)</li>
|
||
<li>以 TAA 结尾(has_stop = 1)</li>
|
||
<li>不包含 ATAT(has_atat = 0)</li>
|
||
<li>包含 GGGG(has_ggg = 1)</li>
|
||
</ul>
|
||
</li>
|
||
<li>样本 5(TCAGTCAGTCAG):
|
||
<ul>
|
||
<li>不匹配任何模式(所有字段 = 0)</li>
|
||
</ul>
|
||
</li>
|
||
<li>样本 6(ATATCGCGCTAG):
|
||
<ul>
|
||
<li>不以 ATG 开头(has_start = 0)</li>
|
||
<li>以 TAG 结尾(has_stop = 1)</li>
|
||
<li>包含 ATAT(has_atat = 1)</li>
|
||
<li>不包含至少 3 个连续 ‘G’(has_ggg = 0)</li>
|
||
</ul>
|
||
</li>
|
||
<li>样本 7(CGTATGCGTCGTA):
|
||
<ul>
|
||
<li>不以 ATG 开头(has_start = 0)</li>
|
||
<li>不以 TAA,TAG 或 TGA 结尾(has_stop = 0)</li>
|
||
<li>不包含 ATAT(has_atat = 0)</li>
|
||
<li>不包含至少 3 个连续 ‘G’(has_ggg = 0)</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<p><strong>注意:</strong></p>
|
||
|
||
<ul>
|
||
<li>结果以 sample_id 升序排序</li>
|
||
<li>对于每个模式,1 表示该模式存在,0 表示不存在</li>
|
||
</ul>
|
||
</div>
|