Филип обнови решението на 17.03.2014 10:52 (преди над 10 години)
+def is_pangram(sentence):
+ all_symbols = set()
+ for symbol in sentence:
+ if ord('А') <= ord(symbol) and ord(symbol) <= ord('я'):
+ all_symbols.add(symbol.lower())
+
+ return len(all_symbols) == 30
+
+
+def char_histogram(text):
+ histogram_symbols = {}
+ for symbol in text:
+ if not symbol in histogram_symbols:
+ histogram_symbols.setdefault(symbol, 1)
+ else:
+ histogram_symbols[symbol] += 1
+
+ return histogram_symbols
+
+
+def sort_by(func, arguments):
+ for outter_index in range(len(arguments)):
+ for index in range(len(arguments) - 1):
+ if func(arguments[index], arguments[index+1]) > 0:
+ temp = arguments[index]
+ arguments[index] = arguments[index + 1]
+ arguments[index + 1] = temp
+
+ return arguments
+
+
+def group_by_type(dictionary):
+ grouped_types = {}
+ for key in dictionary:
+ if not type(key) in grouped_types:
+ grouped_types[type(key)] = {key: dictionary[key]}
+ else:
+ grouped_types[type(key)].update({key: dictionary[key]})
+
+ return grouped_types
+
+
+def anagrams(words):
+ anagram_words = {}
+ for one_word in words:
+ key_symbols = [symbol for symbol in one_word if symbol.isalpha()]
+ key_symbols.sort()
+ key_symbols = str(key_symbols)
+
+ if not key_symbols in anagram_words:
+ anagram_words[key_symbols] = [one_word]
+ else:
+ anagram_words[key_symbols].append(one_word)
+
+ return list(anagram_words.values())
- В Python разменяме стойностите на променливи по следния начин
a, b = b, a
- За да бъдат две фрази анаграми, интересуваме се дамо от буквите, символите нямат значение. Освен това не са
case-sensitive
Това ли ми каза да пробвам? Ако е това работи :D
solution.anagrams(["ab", "ba", "abc", "acb", "bac"])
[['abc', 'acb', 'bac'], ['ab', 'ba']]
Прав си, не съм видяла, че ги сортираш. Грешката ти идва от друго място, ти правиш разлика между малки и големи букви, а не трябва.