Теодор обнови решението на 14.03.2014 14:13 (преди над 10 години)
+BG_ALPHABET = "абвгдежзийклмнопрстуфхцчшщъьюя"
+
+def is_pangram(sentence):
+ for bg_letter in BG_ALPHABET:
+ if bg_letter not in sentence:
+ return False
+ return True
+
+def char_histogram(text):
+ return {key : text.count(key) for key in text if text.count(key) != 0}
+
+def sort_by(function, list_to_sort):
+ for index in range(len(list_to_sort)-1):
+ if function(list_to_sort[index], list_to_sort[index+1]) > 0:
+ list_to_sort[index], list_to_sort[index+1] = \
+ list_to_sort[index+1], list_to_sort[index]
+ return list_to_sort
+
+def group_by_type(dictionary):
+ dict_by_type = {}
+ for key in dictionary:
+ if type(key) in dict_by_type:
+ dict_by_type[type(key)][key] = dictionary[key]
+ else:
+ dict_by_type[type(key)] = {key:dictionary[key]}
+ return dict_by_type
+
+def anagrams(words):
+ anagrams_sorted = []
+ for word in words:
+ anagrams_of_word = sorted([anagram for anagram in words \
+ if char_histogram(anagram)==char_histogram(word)])
+ if anagrams_of_word not in anagrams_sorted:
+ anagrams_sorted.append(anagrams_of_word)
+ return anagrams_sorted
Анаграма е дума или фраза образувана от буквите на друга дума или фраза, чрез пермутация.
- Твоето решение не прави разлика между буква и символ.
- Твоята имплементация на
sort_by
не хваща всички случаи - Не слагай типа в името на променливата.
- Прочети отново какво е панграма