Емануел обнови решението на 18.03.2014 01:04 (преди над 10 години)
+def is_pangram(sentence):
+ letters = ['А', 'Б', 'В', 'Г', 'Д', 'Е',
+ 'Ж', 'З', 'И', 'Й', 'К', 'Л',
+ 'М', 'Н', 'О', 'П', 'Р', 'С',
+ 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч',
+ 'Ш', 'Щ', 'Ъ', 'Ь', 'Ю', 'Я']
+ for letter in letters:
+ if letter not in sentence.upper():
+ return False
+ return True
+
+
+def char_histogram(text):
+ histogram = {}
+ for char in text:
+ histogram[char] = 0
+ for char in text:
+ histogram[char] += 1
+ return histogram
+
+
+def sort_by(func, arguments):
+ for i in range(0, len(arguments)):
+ for j in range(i+1, len(arguments)):
+ if func(arguments[i], arguments[j]) > 0:
+ temp = arguments[i]
+ arguments[i] = arguments[j]
+ arguments[j] = temp
+ return arguments
+
+
+def group_by_type(dictionary):
+ type_dictionary = {}
+ for key in dictionary:
+ type_dictionary[type(key)] = {}
+ for key in dictionary:
+ type_dictionary[type(key)][key] = dictionary[key]
+ return type_dictionary
+
+
+def anagrams(words):
+ anagrams = []
+ for i in range(0, len(words)):
+ group_of_words = [words[i]]
+ for word in words[i+1:]:
+ if sorted(words[i]) == sorted(word):
+ words.remove(word)
+ group_of_words.append(word)
+ anagrams.append(group_of_words)
+ if len(words) - len(anagrams) == 0:
+ break
+ if len(words) - len(anagrams) == 1:
+ words.reverse()
+ anagrams.append([words[0]])
+ return anagrams
+ return anagrams
- Има случаи, в които сортирането ти се дъни
- Ползвай повече от нещата в езика, за да намалиш броя на циклите
- в Python размяната на стойности става по следния начин
a, b = b, a