Евгени обнови решението на 16.03.2014 11:32 (преди над 10 години)
+def is_pangram(sentence):
+ founded_letters = set()
+ for letter in sentence.lower():
+ if (ord(letter) >= 1072 and ord(letter) <= 1103 and
+ ord(letter) != 1101 and ord(letter) != 1099 and
+ letter not in founded_letters):
+ founded_letters.add(letter)
+ return len(founded_letters) == 30
+
+
+def char_histogram(text):
+ result = dict()
+ for symbol in text:
+ if symbol in result:
+ result[symbol] += 1
+ else:
+ result[symbol] = 1
+ return result
+
+
+def sort_by(func, arguments):
+ length = len(arguments) - 1
+ is_sorted = False
+ while not is_sorted:
+ is_sorted = True
+ for i in range(length):
+ if func(arguments[i], arguments[i + 1]) > 0:
+ arguments[i], arguments[i + 1] = arguments[i + 1], arguments[i]
+ is_sorted = False
+ return arguments
+
+
+def group_by_type(dictionary):
+ result = {}
+ for key, value in dictionary.items():
+ if type(key) in result:
+ result[type(key)].update({key: value})
+ else:
+ result[type(key)] = {key: value}
+ return result
+
+
+def string_to_set(word):
+ result = set()
+ for letter in word:
+ result.add(letter)
+ return result
+
+
+def anagrams(words):
+ result = []
+ for word in words:
+ founded_word = False
+ for item in result:
+ if string_to_set(word) == string_to_set(item[0]):
+ item.append(word)
+ founded_word = True
+ break
+ if not founded_word:
+ new_word = []
+ new_word.append(word)
+ result.append(new_word)
+ return result
- малко правопис
founded
->found
- в
is_pangram
нали използваш множество, тогава няма смисъл от тази проверкаletter not in founded_letters
- условието на
if
-а вis_pangram
е много нечетимо, защото човек от къде да знаеint
-а отговарящ на всеки символ; тоест за да ми говори нещо това условие трябва да google-на таблицата иalt-tab
-вайки да дешифрирам; по-добре е в условието да използваш самите букви, а не съответните им числа -
char_histogram
иgroup_by_type
можеш да ги подобриш, ако прегледаш хитринките - хубаво си си написал сорт, но обикновенно се ползва нещо наготово
-
string_to_set
- можеш да пробваш такаset(given_string)
-
anagrams
трябва да работи и в такива случаи: 'ew' и 'We!' са анаграми