Проверка анаграммы Python с использованием функции sorted() и других методов

Вот пример программы Python, которая проверяет, являются ли две строки анаграммами, с помощью функции sorted():

def is_anagram(str1, str2):
    # Remove any whitespaces and convert strings to lowercase
    str1 = str1.replace(" ", "").lower()
    str2 = str2.replace(" ", "").lower()
    # Sort the characters in both strings
    sorted_str1 = sorted(str1)
    sorted_str2 = sorted(str2)
    # Compare the sorted strings
    if sorted_str1 == sorted_str2:
        return True
    else:
        return False
# Test the function
string1 = "listen"
string2 = "silent"
if is_anagram(string1, string2):
    print(f"{string1} and {string2} are anagrams.")
else:
    print(f"{string1} and {string2} are not anagrams.")

Этот код определяет функцию is_anagram(), которая принимает на вход две строки. Он удаляет все пробелы и преобразует обе строки в нижний регистр. Затем он использует функцию sorted()для сортировки символов в каждой строке. Наконец, он сравнивает отсортированные строки, чтобы определить, являются ли они анаграммами.

Другие методы проверки анаграмм без использования функции sorted()включают:

  1. Использование словарей для подсчета вхождений каждого символа в обе строки и сравнение результатов.
  2. Преобразование строк в списки, сортировка списков с использованием специального алгоритма сортировки и сравнение отсортированных списков.
  3. Использование класса collections.Counterдля подсчета вхождений каждого символа в обеих строках и сравнения результатов.