Емилиан обнови решението на 13.03.2014 00:53 (преди над 10 години)
+def is_pangram(sentence):
+ alphabet = ('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л',
+ 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч',
+ 'Ш', 'Щ', 'Ъ', 'Ь', 'Ю', 'Я')
+ sentence = sentence.upper()
+ is_pangram = False
+ for letter in alphabet:
+ if letter in sentence:
+ is_pangram = True
+ else:
+ is_pangram = False
+ break
+
+ return is_pangram
+
+
+def char_histogram(text):
+ histogram = {}
+ for char in text:
+ if char not in histogram.keys():
+ histogram[char] = 1
+ else:
+ histogram[char] += 1
+
+ return histogram
+
+
+def sort_by(func, arguments):
+ for i in range(len(arguments) - 1):
+ if func(arguments[i], arguments[i + 1]) > 0:
+ temp = arguments[i]
+ arguments[i] = arguments[i + 1]
+ arguments[i + 1] = temp
+
+ return arguments
+
+
+def group_by_type(dictionary):
+ grouped_dictionary = {}
+ for key, value in dictionary.items():
+ if type(key) not in grouped_dictionary.keys():
+ grouped_dictionary[type(key)] = {key: value}
+ else:
+ grouped_dictionary[type(key)][key] = value
+
+ return grouped_dictionary
+
+
+def anagrams(words):
+ anagrams = []
+ for word in words:
+ temp = []
+ for other_word in words:
+ if sorted(word) == sorted(other_word):
+ if word not in temp:
+ temp.append(word)
+ if other_word not in temp:
+ temp.append(other_word)
+ temp = sorted(temp)
+ if temp not in anagrams:
+ anagrams.append(temp)
+
+ return anagrams
Анаграма е дума или фраза образувана от буквите на друга дума или фраза, чрез пермутация.
- Твоето решение не прави разлика между буква и символ.
- Имам колекция с най-абсурдните имена на променливи.
temp
е в топ 3. - Проверката ти в
sort_by
изпуска няколко случая. Помисли как да я генерализираш