<p>有一些鲸鱼。你知道吗</p>
<pre><code>whale 906
Whale 282
WHALE 38
</code></pre>
<p>所以:</p>
<pre><code>print(text1.count('Whale') + text1.count('whale') + text1.count('WHALE'))
>> 1226
</code></pre>
<p>为了弄清楚这一点,生成了单词“whale”的所有变体,并打印出非零计数的变体。你知道吗</p>
<p>产生变化:</p>
<pre><code>def get_all_variations(word):
if len(word) == 1:
#a single character has two variations. e.g. a -> [a, A]
return [word, word.upper()]
else:
#otherwise, call recursively using the left and the right half, and merge results.
word_mid_point = len(word) // 2
left_vars = get_all_variations(word[:word_mid_point])
right_vars = get_all_variations(word[word_mid_point:])
variations = []
for left_var in left_vars:
for right_var in right_vars:
variations.append(left_var + right_var)
return variations
</code></pre>
<p>然后:</p>
<pre><code>whale_variations = get_all_variations("whale")
for whale_varitaion in whale_variations:
count = text1.count(whale_varitaion)
if count > 0:
print(whale_varitaion, count)
</code></pre>
<p/><hr/>
作为旁注,所有的变化看起来都很整齐:
<blockquote>
<p>'whale,whalE,whaLe,whaLE,whAle,whAlE,whALe,whALE,wHale,wHalE,wHaLe,wHaLE,wHAle,wHAlE,wHALe,wHALE,Whale,WhalE,WhaLe,WhaLE,WhAle,WhAlE,WhALe,WhALE,WHale,WHalE,WHaLe,WHaLE,WHAle,WHAlE,WHALe,WHALE'</p>
</blockquote>