Васил обнови решението на 14.03.2014 14:43 (преди над 10 години)
+BULGARIAN_ALPHABET = {
+ 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з',
+ 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п',
+ 'р', 'с', 'т', 'у', 'ф', 'ж', 'ц', 'ч',
+ 'ш', 'щ', 'ъ', 'ь', 'ю', 'я'}
+
+
+def is_pangram(sentence):
+ return BULGARIAN_ALPHABET - set(sentence.lower()) == set()
+
+
+def char_histogram(text):
+ return {x: text.count(x) for x in text}
+
+
+def sort_by(func, arguments):
+ for i in range(0, len(arguments) - 1):
+ for j in range(i + 1, len(arguments)):
+ if func(arguments[i], arguments[j]) > 0:
+ tmp = arguments[i]
+ arguments[i] = arguments[j]
+ arguments[j] = tmp
+ return arguments
+
+
+def group_by_type(dictionary):
+ result = {}
+ for key in dictionary:
+ if type(key) in result.keys():
+ result[type(key)][key] = dictionary[key]
+ else:
+ result[type(key)] = {key: dictionary[key]}
+ return result
+
+
+def are_anagram(first_word, second_word):
+ for symbol in first_word:
+ if first_word.count(symbol) != second_word.count(symbol):
+ return False
+ if len(first_word) != len(second_word):
+ return False
+ return True
+
+
+def anagrams(words):
+ used_words = set()
+ result = []
+ for word in words:
+ if word not in used_words:
+ anagrams_of_word = [w for w in words if are_anagram(w, word)]
+ for w in anagrams_of_word:
+ used_words.add(w)
+ result.append(anagrams_of_word)
+ return result
- В Python можеш да размениш стойностите на две променливи просто като направиш
a, b = b, a
- Можеш да избегнеш името
x
- Замисли се дали нямаш случаи, в които сортирането ти не работи както очакваш
- Погледни пак условието на
anagrams
и ще видиш, че искаме еднакви букви, а не символи