Вот простая функция, которая принимает две входные строки. Он возвращает True, если вторая строка является анаграммой первой.
def validAnagram(str1, str2):
if len(str1) != len(str2):
return False
str1_arr = [char for char in str1]
str2_arr = [char for char in str2]
for char in str1_arr:
if char in str2_arr:
str2_arr.remove(char)
else:
return False
return True
Я учусь вычислять Большое О программ, которые я пишу. Время выполнения этой функции: O (N 2 ) или O (N 3 )?
Я предполагаю, что это O (N 3 ), потому что Условие «если» также выполняется O (N). Итак, его 3 вложенные операции O (N), в результате чего время выполнения составляет O (N 3 ). Пожалуйста, поправьте меня, если я ошибаюсь.