python-3.x - Python - 比较 2 个单词并检查它们是否是变位词

标签 python-3.x anagram

我正在尝试定义一个接受 2 个字符串的函数,比较这两个字符串,如果它们是变位词则返回 True。我不想导入集合。

因此,如果字符串 1 是 python 并且字符串 2 是 nohtyp,它应该返回 True。否则,很明显,返回 false。到目前为止,这是我的代码:

def check_anagram(str1, str2):
if len(str1) != len(str2):
    return False
else:
    for i in range(0, len(str1), 1):
        if i in range(0, len(str2), 1):
            return True
        else:
            return False

它适用于大多数情况,但当 str1 是 aaaaaaaaaabbbbbbbbbb str2 是 ababababbbababababab,它返回 true 当 str1 为 xxxyyyxxx 且 str2 为 yyyxxxyyy 时,它也返回 True

对于这两种情况,它应该重新运行 False,但我不知道。 有人可以帮我解决这个问题吗?

最佳答案

我认为完成任务最简单的方法是对字符串进行排序并像这个例子一样比较它们:

def check_anagram(a = '', b = ''):
    return sorted(a) == sorted(b)

测试 1:

a = "python"
b = "nohtyp"
print(check_anagram(a, b))

输出:

>>> True

测试 2:

a = "aaaaaaaaaabbbbbbbbb"
b = "ababababbbababababab"
print(check_anagram(a, b))

输出:

>>> False

测试 3:

a = "xxxyyyxxx"
b = "yyyxxxyyy"
print(check_anagram(a, b))

输出:

>>> False

关于python-3.x - Python - 比较 2 个单词并检查它们是否是变位词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42914927/

相关文章:

python - 如何将文本文件制作成数组列表(数组中的数组)并删除空格/换行符

Python - 为什么 <br> 在 Scrapy 中破坏 XPath text()?

python - 我将如何创建另一个传入的矩形?

python - wand - 文本换行 - 基于图像文件大小

c++ - 代码审查、C++、Anagram 方法

java - 将 System.out.print 转换为 JOptionPane?

python - 在 Python 中执行 VLOOKUP 没有给出正确的结果

c++ - 我怎样才能得到一个字符串的所有字谜

c++ - C++ 中的 Anagram 求解器

Java Anagram - 它是除了排序之外最简单的解决方案吗