擅长:python、mysql、java
<p>我想您可能在输入中寻找最长的非N字符序列。你知道吗</p>
<p>否则,就没有规则来区分前缀中的最后一个<code>N</code>和后缀中的第一个<code>N</code>。你想在<code>N</code>之后(在<code>ACAGAC…</code>之前)和下一个<code>N</code>(在<code>CATCCC</code>之前)开始的<code>N</code>没有什么不同,或者,就这一点而言,上一个(在<code>GN</code>之前)除了它挑选出最长的序列之外。事实上,除了开头的10个N和结尾的9个N以外,N的任何一个都没有什么特别之处</p>
<p>最简单的方法就是抓取所有序列并保持最长时间:</p>
<pre><code>max(s.split('N'), key=len)
</code></pre>
<p>如果你有一些额外的规则在上面-例如,长度可以被3整除的最长序列(在本例中是相同的东西)-你可以做同样的基本事情:</p>
<pre><code>max((seq for seq in s.split('N') if len(seq) % 3 == 0), key=len)
</code></pre>