擅长:python、mysql、java
<p>问题是您只需检查字符串中是否存在任何字符匹配,然后递增计数器。您不计算已与另一个匹配的字符。这就是为什么以下项目也会失败:</p>
<pre><code>>>> test_for_anagrams('aa', 'aa')
False
</code></pre>
<p>即使字符串是<em>等于</em>(因此也是一个anagram),也要将第一个字符串的每个<code>a</code>与另一个字符串的每个<code>a</code>相匹配,因此有一个<code>4</code>的计数,结果是<code>False</code>。在</p>
<p>一般来说,您应该统计每个字符的出现次数,并确保每个字符在每个字符串中出现的频率相同。您可以使用<a href="https://docs.python.org/3/library/collections.html#collections.Counter" rel="nofollow">^{<cd5>}</a>对象来计算字符数。然后,您只需检查每个字符串的计数是否相同,这可以通过比较counter对象(只是字典)轻松完成:</p>
^{pr2}$
<pre><code>>>> test_for_anagrams('Orchestra', 'Carthorse')
True
>>> test_for_anagrams('aa', 'aa')
True
>>> test_for_anagrams('bar', 'baz')
False
</code></pre>