Решение на Пет функции от Герасим Станчев
Към профила на Герасим Станчев
Резултати
- 9 точки от тестове
- 0 бонус точки
- 9 точки общо
- 15 успешни тест(а)
- 1 неуспешни тест(а)
Код
Лог от изпълнението
...............F ====================================================================== FAIL: test_sort_by_simple_test (test.TestSortBy) ---------------------------------------------------------------------- Traceback (most recent call last): File "lib/language/python/runner.py", line 60, in thread raise it.exc_info[1] File "lib/language/python/runner.py", line 48, in run self.result = func(*args, **kwargs) File "/tmp/d20140319-21201-nl561d/test.py", line 54, in test_sort_by_simple_test solution.sort_by(lambda x, y: x % 2 - y % 2, [0, 1, 2, 3, 4, 5])) AssertionError: Lists differ: [0, 2, 4, 1, 3, 5] != [0, 2, 4, 3, 1, 5] First differing element 3: 1 3 - [0, 2, 4, 1, 3, 5] ? --- + [0, 2, 4, 3, 1, 5] ? +++ ---------------------------------------------------------------------- Ran 16 tests in 0.027s FAILED (failures=1)
История (4 версии и 9 коментара)
Герасим обнови решението на 15.03.2014 13:18 (преди над 10 години)
- Имаш редове по-дълги от 80 символа
- Обърни внимание, че в
anagrams
се иска да има еднакви букви, не се интересуваме от символите - Имената
result_dups
,temp_results
иword_comp
нищо не значат - Дали няма случаи, в които сортирането ти ще върне грешен резултат
- Ще го оправя.
- По презумпция не се ли подават само низове със символи? Трябва ли да "изчиствам" низовете от други символи?
- И това ще го оправя.
- Ако са подадени големи букви. Но дори на примера е написано с малка буква името mary. Трябва ли да разглеждам този случай?
Могат да се подават всякакви символи, но ти искаш само множеството от буквите да е едно и също. Освен това малкото и голямото а
са една и съща буква
Това, че само буквите трябва да се проверяват, не ми стана ясно от условието. Иначе, ако изчиствам "небуквените" символи и минавам към upper/lower не би трябвало да има проблем.
И при връщане на резултат, изчистените стрингове ли да връщам, или оригиналните?
Герасим обнови решението на 18.03.2014 11:59 (преди над 10 години)
Оригиналните, сега е ОК, но имаш малък проблем със сортирането
Сега е ОК, но имаш малък проблем със сортирането
Не би трябвало да имам. Дори да го пусна като: word_1 = ''.join(re.sub(r'[^a-zA-Z]', '', word_1)).lower() word_1 = sorted(word_1) word_2 = ''.join(re.sub(r'[^a-zA-Z]', '', word_2)).lower() word_2 = sorted(word_2), ще сортира коректно, защото двата низа са изчистени от "небуквени" символи, приведени са към lower() и след това са сортирани. Сортировката се извършва само върху малки букви, така че винаги трябва да е коректна. Преди return на word_1 и на word_2 е присвоен списък със сортираните букви от подадения низ. Мисля, че вече се повтарям, така че спирам с обясненията. :)
Но отново съм оставил глупавите имена......