擅长:python、mysql、java
<p>当@JohnGordon的解决方案工作时,它为每个秩值重复5次是浪费的。你知道吗</p>
<p>一个更有效的方法是将等级从2迭代到14,并简单地使用计数器来跟踪到目前为止等级连续存在于卡中的次数,如果连续的等级不存在,则重置计数器。如果计数器达到5,则确定存在直线。考虑到Ace(此处假设其秩为14)可以被视为1,从而与2、3、4和5形成直线,您可以将14预先设置为2到14的范围以进行迭代:</p>
<pre><code>count = 0
for rank in (14, *range(2, 15)):
if rank in vset:
count += 1
if count == 5:
print('Straight found')
break
else:
count = 0
else:
print('Straight not found')
</code></pre>