Решение на Пет функции от Петър Лалов

Обратно към всички решения

Към профила на Петър Лалов

Резултати

  • 8 точки от тестове
  • 0 бонус точки
  • 8 точки общо
  • 13 успешни тест(а)
  • 3 неуспешни тест(а)

Код

def is_pangram(sentence):
alfabet_set = set(u'абвгдежзийклмнопрстуфхцчшщъьюя')
subset = alfabet_set & set(sentence.lower())
return subset == alfabet_set
def char_histogram(string):
result = {}
for char in string:
if char in result.keys():
result[char] = result[char] + 1
else:
result[char] = 1
return result
def sort_by(func, arguments):
for i in range(0, len(arguments) - 1):
if func(arguments[i], arguments[i+1]) > 0:
arguments[i], arguments[i+1] = arguments[i+1], arguments[i]
return arguments
def group_by_type(dictionary):
result = {}
for (key, value) in dictionary.items():
if result.get(type(key)) != None:
result[type(key)][key] = value
else:
result[type(key)] = {key : value}
return result
def anagrams(words):
result = {}
for word in words:
hash_ = hash(frozenset(word))
if result.get(hash_) != None:
result[hash_].append(word)
else:
result[hash_] = [word]
return result.values()

Лог от изпълнението

▸ Покажи лога

История (2 версии и 2 коментара)

Петър обнови решението на 14.03.2014 11:13 (преди над 11 години)

▸ Покажи разликите
+def is_pangram(sentence):
+ alfabet_set = set(u'абвгдежзийклмнопрстуфхцчшщъьюя')
+ subset = alfabet_set & set(sentence.lower())
+ return subset == alfabet_set
+
+def char_histogram(string):
+ result = {}
+ for char in string:
+ if char in result.keys():
+ result[char] = result[char] + 1
+ else:
+ result[char] = 1
+ return result
+
+def sort_by(func, arguments):
+ for i in range(0, len(arguments) - 1):
+ if func(arguments[i], arguments[i+1]) > 0:
+ arguments[i], arguments[i+1] = arguments[i+1], arguments[i]
+ return arguments
+
+def group_by_type(dictionary):
+ result = {}
+ for (key, value) in dictionary.items():
+ if result.has_key(type(key)):
+ result[type(key)][key] = value
+ else:
+ result[type(key)] = {key : value}
+ return result
+
+def anagrams(words):
+ result = {}
+ for word in words:
+ hash_ = hash(frozenset(word))
+ if result.has_key(hash_):
+ result[hash_].append(word)
+ else:
+ result[hash_] = [word]
+ return result.values()

Петър обнови решението на 17.03.2014 11:20 (преди над 11 години)

▸ Покажи разликите
def is_pangram(sentence):
alfabet_set = set(u'абвгдежзийклмнопрстуфхцчшщъьюя')
subset = alfabet_set & set(sentence.lower())
return subset == alfabet_set
def char_histogram(string):
result = {}
for char in string:
if char in result.keys():
result[char] = result[char] + 1
else:
result[char] = 1
return result
def sort_by(func, arguments):
for i in range(0, len(arguments) - 1):
if func(arguments[i], arguments[i+1]) > 0:
arguments[i], arguments[i+1] = arguments[i+1], arguments[i]
return arguments
def group_by_type(dictionary):
result = {}
for (key, value) in dictionary.items():
- if result.has_key(type(key)):
+ if result.get(type(key)) != None:
result[type(key)][key] = value
else:
result[type(key)] = {key : value}
return result
def anagrams(words):
result = {}
for word in words:
hash_ = hash(frozenset(word))
- if result.has_key(hash_):
+ if result.get(hash_) != None:
result[hash_].append(word)
else:
result[hash_] = [word]
return result.values()
+

Анаграма е дума или фраза образувана от буквите на друга дума или фраза, чрез пермутация.

  • Твоето решение не прави разлика между буква и символ
  • Проверката ти в sort_by изпуска няколко случая. Помисли как да я генерализираш