擅长:python、mysql、java
<p>如果两个字符串是字谜,它们的长度必须相同,您可以直接用一个简单的嵌套<code>for</code>循环来测试它们。在</p>
<p>为了检查两个字符串是否是字谜,<a href="https://docs.python.org/3/library/collections.html#collections.Counter" rel="nofollow noreferrer">^{<cd2>}</a>很有用:它统计iterable中每个不同元素的出现次数,因此两个字符串<code>si</code>和{<cd4>}是字谜当且仅当<code>Counter(si) == Counter(sj)</code>。在</p>
<pre><code>from collections import Counter
def anagrams(string):
subs = [string[i:j+1] for i in range(len(string)) for j in range(i, len(string))]
counters = list(map(Counter, subs))
total = 0
for i, ci in enumerate(counters):
for j, cj in enumerate(counters):
if i != j and ci == cj:
total += 1
return total
</code></pre>