回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<blockquote>
<p>The word <em>marine</em> consists of five consecutive, overlapping state postal abbreviations: Massachusetts (MA), Arkansas (AR), Rhode Island (RI), Indiana (IN), and Nebraska (NE). Find a seven-letter word that has the same property.</p>
</blockquote>
<p>我正在使用Python打开一个由大约5000个单词组成的列表。我想先找到一个包含5个州缩写的单词</p>
<pre><code>def puzzleH(word):
states = ['al', 'ak', 'az', 'ar', 'ca', 'co', 'ct', 'dc', 'de', 'fl', 'ga',
'hi', 'id', 'il', 'in', 'ia', 'ks', 'ky', 'la', 'me', 'md',
'ma', 'mi', 'mn', 'ms', 'mo', 'mt', 'ne', 'nv', 'nh', 'nj',
'nm', 'ny', 'nc', 'nd', 'oh', 'ok', 'or', 'pa', 'ri', 'sc',
'sd', 'tn', 'tx', 'ut', 'vt', 'va', 'wa', 'wv', 'wi', 'wy']
checker = 0;
for st in states:
if st in word:
checker+=1
if checker==5:
# ...still thinking...
#pos = (i for i,st in enumerate(word) if st in states)
#for i in pos: print(i)
#return word
# Main program
ListH = []
for word in wordList:
if puzzleH(word)!=None:
ListH.append(puzzleH(word))
</code></pre>
<p>在找到一个包含5个州缩写的单词后,我将找到每个州缩写的索引。并将这些索引列表与<code>[0,1,2,3,4]</code>或<code>[1,2,3,4,5]</code>或<code>[2,3,4,5,6]</code>进行比较。但我不知道怎么做</p>