Виктор обнови решението на 14.03.2014 14:42 (преди над 10 години)
+def is_pangram(sentence):
+
+ alphabet = ['а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й',
+ 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у',
+ 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ь', 'ю', 'я']
+ used = {}
+ for c in sentence:
+ used[c.lower()] = True
+ for letter in alphabet:
+ if letter not in used:
+ return False
+ return True
+
+def char_histogram(text):
+
+ count = {}
+ for c in text:
+ if c in count:
+ count[c] += 1
+ else:
+ count[c] = 1
+ return count
+
+def sort_by(func, arguments):
+
+ res = []
+ length = len(arguments)
+ if length < 2:
+ return arguments
+ mid = length // 2
+ left = sort_by(func, arguments[:mid])
+ right = sort_by(func, arguments[mid:])
+ l1 = len(left)
+ l2 = len(right)
+ i = 0
+ j = 0
+ while i < l1 and j < l2:
+ if func(left[i], right[j]) > 0:
+ res.append(right[j])
+ j += 1
+ else:
+ res.append(left[i])
+ i += 1
+ res += left[i:]
+ res += right[j:]
+ return res
+
+def group_by_type(dictionary):
+
+ res = {}
+ for key in dictionary.keys():
+ if type(key) not in res:
+ res[type(key)] = {}
+ res[type(key)][key] = dictionary[key]
+ return res
+
+def anagrams(words):
+
+ used = {}
+ res = []
+ for w1 in words:
+ if w1 not in used:
+ current_res = [w1]
+ used[w1] = True
+ for w2 in words:
+ if w2 not in used and char_histogram(w1) == char_histogram(w2):
+ current_res.append(w2)
+ used[w2] = True
+ res.append(current_res)
+ return res
+
Анаграма е дума или фраза образувана от буквите на друга дума или фраза, чрез пермутация.
- Твоето решение не прави разлика между буква и символ.
- Дюд, пишеш C код в кожата на Python (кожата на питон... get it? get it?).
-
res
,i
,j
,l1
,l2
иmid
не означават нищо. Опитай да именоваш нещата си по-адекватно