Стоян обнови решението на 14.03.2014 19:54 (преди над 10 години)
+def is_pangram(sentence):
+ sentence = sentence.lower()
+ ALPHABET = {'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о',
+ 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ю', 'я'}
+ used_letters = set()
+ for letter in sentence:
+ if letter in ALPHABET:
+ used_letters.add(letter)
+ return used_letters == ALPHABET
+
+
+def char_histogram(text):
+ histogram = {}
+ different_letters_in_text = set(text)
+ for letter in different_letters_in_text:
+ histogram[letter] = text.count(letter)
+ return histogram
+
+
+def sort_by(func, arguments):
+ for i in range(0, len(arguments) - 1):
+ for j in range(0, len(arguments) - i - 1):
+ if func(arguments[j], arguments[j + 1]) > 0:
+ arguments[j], arguments[j + 1] = arguments[j + 1], arguments[j]
+ return arguments
+
+
+def group_by_type(dictionary):
+ grouped_dictionary = {}
+ for key in dictionary:
+ if type(key) not in grouped_dictionary.keys():
+ grouped_dictionary[type(key)] = {key: dictionary[key]}
+ grouped_dictionary[type(key)][key] = dictionary[key]
+ return grouped_dictionary
+
+
+def are_anagrams(word1, word2):
+ return tuple(sorted(word1)) == tuple(sorted(word2))
+
+
+def anagrams(words):
+ anagrams_in_words = set()
+ dict_of_anagrams = {}
+ for word in words:
+ anagrams_in_words.add(tuple(sorted(word)))
+ for anagram in anagrams_in_words:
+ dict_of_anagrams[anagram] = []
+ for word in words:
+ for anagram in anagrams_in_words:
+ if are_anagrams(word, anagram):
+ dict_of_anagrams[anagram].append(word)
+ return list(dict_of_anagrams.values())
- Имаш редове по-дълги от 80 символа
- Не си прочел внимателно условието на
anagrams
, искаме същите букви, а не символи - Обещахме да наказание за използването на
dict_
в името на променливите
А за grouped_dictionary
също ли е проблем, знам че не е добре, но си мислех, че в тези случаи става по-ясно какво е, ако се кръстят така.