Ход работы
В ходе прохождения практики были выполнены задания по алгоритмам и структурам данных с использованием языка программирования Python.
На первом этапе были изучены условия заданий первой недели. Были рассмотрены задачи на работу с числами, строками, массивами и базовыми алгоритмами. Для решения заданий использовались циклы, условные операторы, функции, списки, словари, сортировка, поиск элементов и проверка различных условий. Были выполнены задачи на поиск пифагоровых троек, проверку строк, поиск уникальных чисел, подбор комбинаций ПИН-кода, работу с палиндромами, ближайшими меньшими элементами, шестнадцатеричными числами, а также задачи на выбор оптимального набора элементов.
На следующем этапе были выполнены более сложные задания, связанные с алгоритмами и структурами данных. Были рассмотрены задачи на нахождение НОД и НОК, решение квадратного уравнения, работу с дедлайнами, обработку журналов событий, поиск максимального среднего значения, анализ строк и выполнение проверок по заданным условиям. Для части задач применялись жадные алгоритмы, сортировка, перебор, работа с массивами и математические вычисления.
Во время второй недели практики были выполнены задания на поиск возрастающих подпоследовательностей, работу со скобочными последовательностями, сжатие строк, поиск палиндромов, анализ шестнадцатеричных чисел, нахождение максимальной суммы подмассива, решение задачи о рюкзаке, поиск анаграмм, объединение интервалов, динамическое программирование, поиск минимального количества монет, проверку циклического сдвига и вычисление расстояния редактирования.
На третьей неделе были выполнены задания, направленные на закрепление навыков программирования на Python. Были рассмотрены совершенные числа, ДНК-палиндромы, уникальный максимум, автоморфные числа, восстановление hex-чисел, задачи на рюкзак, римские числа, перестановки строк, проверку надежности пароля, пересечение интервалов, подсчёт делителей, RLE-кодирование, частотный анализ слов, проверку сбалансированности скобок и поиск в ширину в графе.
Для каждого задания сначала определялись входные и выходные данные, затем подбирался подходящий алгоритм решения. После этого составлялся программный код на языке Python. В процессе выполнения использовались переменные, условные конструкции, циклы, функции, списки, строки, словари, множества, сортировка, рекурсия, динамическое программирование и базовые алгоритмы работы с графами.
После написания программ проводилась проверка их работы на тестовых примерах. При возникновении ошибок выполнялась отладка: исправлялись синтаксические ошибки, проверялась логика условий, корректность циклов, индексов и выводимых результатов.
В результате выполнения практической работы были закреплены навыки разработки программ на языке Python, получен опыт решения задач по алгоритмам и структурам данных, а также улучшены навыки анализа условий задач, выбора алгоритма и проверки корректности программы.