Python: Улитка

Python: Списки 13 сообщений
Обновлено: 19 янв., 16:14
220
Студентов
72%
Завершения

Матрицу можно представить в виде двумерного списка. Например, список [[1, 2, 3, 4], [5, 6, 7, 8]] — это отображение матрицы:

1 2 3 4
5 6 7 8

src/solution.py

Реализуйте функцию snail_path(), которая принимает на вход матрицу и возвращает список элементов матрицы по порядку следования от левого верхнего элемента по часовой стрелке к внутреннему. Движение по матрице напоминает улитку:

Путь улитки Snail path

>>> from solution import snail_path
>>> snail_path([[1, 2], [3, 4]])
[1, 2, 4, 3]
>>> snail_path([[1, 2, 3], [8, 9, 4], [7, 6, 5]])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> snail_path([['b', 'c', 'a'], ['3', True, 11], [None, 'foo', 0]])
['b', 'c', 'a', 11, 0, 'foo', None, '3', True]
>>>

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов

Впечатления

Lesson Улитка

Итак. Что хотелось бы сказать. Я все же одолел эту несносную улитку! Как же я попотел над ней, словами не передать. Просто целый день и полночи улитка эта из головы не вылезала :) прошел все стадии, от отрицания до принятия и обратно по несколько раз. Самое страшное, что я не просто не понимал, как воплотить это в питоне, у меня алгоритм не укладывался, вот не приходило решение и все, чувствовал себя безмерно тупым, если честно. Но полчаса назад реально как озарение пришло, по-другому не сказать. Я понял как это должно быть, ну то есть понял сам алгоритм, сперва в общих чертах, потом и полностью. Самое веселое, что хотя элементы языка, необходимые для решения, не все имеются в курсе по спискам, найти их погуглив оказалось весьма просто. В итоге, как всегда, смотрю на решение и кажется, как я до этого сразу то не догадался? Несколько строк кода буквально ведь :) Сейчас хожу сам себе довольный от того что нашел решение :)