Стоян обнови решението на 16.03.2014 22:02 (преди над 10 години)
+ALPHABET = {'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л',
+ 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч',
+ 'ш', 'щ', 'ъ', 'ь', 'ю', 'я'}
+
+
+def is_pangram(sentence):
+ return ALPHABET <= set(sentence.lower())
+
+
+def char_histogram(text):
+ symbols_count = {}
+ for symbol in text:
+ if symbol in symbols_count:
+ symbols_count[symbol] += 1
+ else:
+ symbols_count[symbol] = 1
+
+ return symbols_count
+
+
+def sort_by(func, arguments):
+ IS_NOT_SORTED = True
+
+ while IS_NOT_SORTED:
+ IS_NOT_SORTED = False
+ for i in range(0, len(arguments) - 1):
+ if func(arguments[i], arguments[i + 1]) > 0:
+ arguments[i], arguments[i + 1] = arguments[i + 1], arguments[i]
+ IS_NOT_SORTED = True
+
+ return arguments
+
+
+def group_by_type(dictionary):
+ new_dictionary = {}
+ for key in dictionary:
+ new_dictionary.setdefault(type(key), {})[key] = dictionary[key]
+
+ return new_dictionary
+
+
+def are_anagrams(word, another_word):
+ symbols_in_word = char_histogram(word.lower())
+ symbols_in_another_word = char_histogram(another_word.lower())
+
+ for key in symbols_in_word:
+ if key.isalpha() and key in symbols_in_another_word:
+ if symbols_in_word[key] != symbols_in_another_word[key]:
+ return False
+ elif key.isalpha() and key not in symbols_in_another_word:
+ return False
+
+ return True
+
+
+def anagrams(words):
+ anagram_words = []
+ checked_words = set()
+
+ for word in words:
+ if word not in checked_words:
+ angarams_with_word = [el for el in words if are_anagrams(word, el)]
+ anagram_words.append(angarams_with_word)
+ for w in angarams_with_word:
+ checked_words.add(w)
+
+ return anagram_words
-
IS_NOT_SORTED
не е константа за да е с главни букви -
w
не е адекватно име на променлива. -
new_dictionary
- всяка променлива до известна степен е "нова", а типа не е необходимо да го описваш в името на променливата. Помисли за по-добра алтернатива.