Теодора обнови решението на 18.03.2014 23:28 (преди почти 11 години)
+from collections import defaultdict
+
+
+def is_pangram(sentence):
+ alphabet = 'абвгдежзийклмнопрстуфхцчшщъьюя'
+ for character in sentence:
+ alphabet = alphabet.replace(character.lower(), '')
+ return alphabet == ''
+
+
+def char_histogram(text):
+ symbols_count = {}
+ for symbol in list(text):
+ if symbol not in symbols_count:
+ symbols_count[symbol] = 1
+ else:
+ symbols_count[symbol] += 1
+ return symbols_count
+
+
+def sort_by(func, arguments):
+ pass
+ #return arguments.sort(key=func)
+
+
+def group_by_type(dictionary):
+ grouped_by_key_type = defaultdict(dict)
+ for key, value in dictionary.items():
+ grouped_by_key_type[type(key)].update({key: value})
+ return dict(grouped_by_key_type)
+
+
+def anagrams(words):
+ grouped_words = defaultdict(list)
+ for word in words:
+ grouped_words[''.join(sorted(word))].append(word)
+ return list(grouped_words.values())
- интересно как се сещаш да използваш
defaultdict
вgroup_by_type
, но не и вchar_histogram
:) - не е нужно да правиш от стринг списък, за да го итерираш;
for symbol in text:
също работи - по-добре
grouped_by_key_type[type(key)][key] = value
вместоgrouped_by_key_type[type(key)].update({key: value})
- при анаграмите трябва да взимаш предвид само буквите(тоест
a b c d e ...
, другите неща не те интересуват) и то без значение дали са главни или малки