Собеседование на позицию программиста на языке Golang может быть довольно сложным, особенно если работодатель ищет кандидата, который обладает хорошими знаниями алгоритмов. В данной статье мы рассмотрим некоторые задачи по алгоритмам уровня medium, которые могут быть заданы на собеседовании, а также поделимся примерами кода решений этих задач. 1. Задача о нахождении наибольшей общей последовательности (LCS) Даны две строки s1 и s2. Необходимо найти наибольшую общую последовательность символов в этих строках. Пример: s1 = "ABCDGH" s2 = "AEDFHR" Ответ: "ADH" Решение: Для решения этой задачи мы можем использовать динамическое программирование. Создадим двумерный массив dp, где dp[i][j] будет содержать длину наибольшей общей последовательности для подстрок s1[0:i] и s2[0:j]. Заполним этот массив следующим образом: - dp[0][j] = 0 для всех j - dp[i][0] = 0 для всех i - Если s1[i-1] == s2[j-1], то dp[i][j] = dp[i-1][j-1] + 1 - Иначе, dp[i][j] = max(dp[i-1][j], dp[i][j-1]) Наконец, н