Вот пример программы 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()
включают:
- Использование словарей для подсчета вхождений каждого символа в обе строки и сравнение результатов.
- Преобразование строк в списки, сортировка списков с использованием специального алгоритма сортировки и сравнение отсортированных списков.
- Использование класса
collections.Counter
для подсчета вхождений каждого символа в обеих строках и сравнения результатов.