Решение различных вопросов по программированию шаблонов, которые задают компании, использующие Python, на собеседованиях

В ходе собеседований по кодированию часто используется шаблонная программа для тестирования кандидатов.

Обычно в процессе собеседования, продолжающемся четыре раунда, первый раунд обычно представляет собой один раунд программирования, и есть вероятность, что один из задаваемых вопросов может быть программой шаблона.

Программирование шаблонов - это когда вам часто задают конкретный вопрос о дизайне шаблона, отмеченный звездочкой (*), цифрами или буквами, и вы программируете этот дизайн с помощью операторов итеративного цикла.

В этой статье мы раскроем способы решения этих проблем и поймем теорию, лежащую в основе этих шаблонов программирования.

Несколько лет назад я использовал для решения большинства своих шаблонных программ с использованием программирования на Java, но python так же прост, а может быть, даже немного проще. Итак, язык Python будет предпочтительным для этой статьи.

Однако используемый язык не имеет большого значения, важна только интересная логика решения этих проблем. Сегодня мы рассмотрим несколько из этих основных вопросов.

Итак, без лишних слов, давайте запачкаем руки и начнем писать код!

Паттерн-1: Полупирамида с вариацией чисел-1

Вышеупомянутый шаблон - это первый тип вопросов, которые мы решим в этой статье. Большинство из этих вопросов типа шаблонов можно довольно легко решить с помощью двух или трех итерационных операций.

При более внимательном рассмотрении можно заметить, что после печати первого числа курсор переходит на следующую строку, затем после печати 2 чисел курсор снова перемещается на следующую строку и так далее.

Наша логика решения этого паттерна будет довольно простой. У нас будет 5 строк, и затем мы будем перемещать курсор после вывода чисел, равных его номеру строки.

Под этим я подразумеваю, что для первой строки будет напечатано 1 число, во второй строке будет напечатано 2 числа и так далее.

Примечание. В этой статье рассматривается несколько решений проблем. Это коды и методы, которые я выбрал. Вы можете свободно решать их любым способом, который вам удобнее для вашего стиля программирования.

Код:

вы можете выбрать количество строк в соответствии с вводом пользователя, определив пользовательскую переменную следующим образом:

Логика, которую я предложил ранее, реализована в блоке кода. Важно помнить, что внутренний цикл всегда реализуется первым. После этого выполняется внешний цикл. Функция диапазона всегда включает первое указанное число и игнорирует последнюю цифру, учитывая вместо этого значение n-1. (где n - последняя цифра, в данном случае это 6).

В этой программе мы указываем количество строк, которые будут интерпретироваться соответствующим образом. После этого мы запускаем внутренний цикл, который выполняется в соответствии с количеством имеющихся строк. И мы печатаем «j», потому что каждый раз значение сбрасывается на единицу, и печатаются значения, соответствующие порядку возрастания строк.

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

Паттерн-2: Полупирамида с вариацией чисел-2

Вторая программа-шаблон, которую мы будем решать, очень похожа на первый вопрос о полупирамиде. Единственная разница здесь в том, что нам нужно вывести число, эквивалентное количеству строк, и это число нужно интерпретировать в соответствии с его соответствующим значением.

Это означает, что число «1» будет интерпретировано первым и будет напечатано только один раз. Число «2» будет выполнено вторым и будет напечатано дважды, и так далее.

Код:

В этой программе мы указываем количество строк, которые будут интерпретироваться соответствующим образом. После этого мы запускаем внутренний цикл, который выполняется в соответствии с количеством имеющихся строк.

После этого мы будем печатать «i» каждый раз, когда выполнение будет завершено. «I» указывает i-ю строку, а также число «i», которое должно быть напечатано для каждой последующей итерации. Это означает, что число «1» будет интерпретировано первым и будет напечатано только один раз. Число «2» будет выполнено вторым и будет напечатано дважды, и так далее.

Шаблон-3: Полупирамида со звездочкой «*»

Следующая программа паттернов должна быть довольно простой, так как мы уже решали два подобных вопроса ранее. Фактически это можно сделать двумя способами.

Оба метода их решения указаны в двух предыдущих вопросах. Единственная замена - использовать замену звездочки «*» вместо чисел «i» или «j». Обратите внимание, что другие символы, такие как решетка «#», также могут быть запрошены, но методология остается той же.

Код:

Подход-1:

Подход-2:

Оба блока кода, показанные выше, являются допустимыми способами решения этой программы-шаблона.

Мы вычисляем диапазон до количества строк, а затем выполняем желаемое значение звездочки, эквивалентное количеству строк. За перемещением курсора на следующую строку следует код, предложенный во внутреннем цикле «j» блоков кода.

Паттерн-4: Вариант обратной полупирамиды 1

Следующая программа-шаблон, с которой мы столкнемся, - это обратная полупирамида чисел. Здесь у нас есть пять строк, аналогичных предыдущим вопросам. Мы должны начать с максимального числа упомянутых строк вплоть до самого низа, содержащего только одно число.

Для следующих нескольких программ шаблонов мы будем использовать логику обратной итерации с использованием диапазона (N, -1, -1), который представляет собой обратную реализацию повторяющихся чисел.

Код:

В приведенном выше блоке кода показаны два последовательных цикла for для выполнения внешних и внутренних итераций в обратном порядке. Здесь мы начинаем с 1-й строки и печатаем пять чисел задом наперед. Эта реализация приведет к уменьшению порядка количества строк, пока мы не достигнем устойчивого конца для количества циклов.

Паттерн-5: Вариант обратной полупирамиды 2

Эта программа-шаблон представляет собой второй вариант ранее решенного вопроса обратной полупирамиды. Логика проста. Всего пять строк, и мы печатаем количество строк, эквивалентное номерам каждой строки, в обратном порядке.

Даже для этой программы-шаблона мы будем использовать логику обратной итерации с использованием диапазона (N, -1, -1), который представляет собой обратную реализацию повторяющихся чисел.

Код:

В приведенном выше блоке кода показаны два последовательных цикла for для выполнения внешних и внутренних итераций в обратном порядке. Здесь мы начинаем с 1-й строки и печатаем пять чисел в обратном порядке.

Числа, напечатанные в этой реализации, приведут к уменьшению порядка количества строк до тех пор, пока мы не достигнем устойчивого конца для количества циклов, и каждое напечатанное число будет равно обратному порядку цикла.

Шаблон 6: инверсная вариация полупирамиды со звездочкой "*"

Даже для этой программы-шаблона мы будем использовать логику обратной итерации с использованием диапазона (N, -1, -1), который представляет собой обратную реализацию повторяющихся чисел. Логика аналогична предыдущим двум программам шаблонов, которые объясняются соответственно.

Код:

Объяснение аналогично предыдущим двум программам обратной полупирамиды. Мы просто печатаем символ вместо номера строки или столбца.

Шаблон-7: Полупирамида с вариацией чисел-3

Это последняя реализация данной статьи в виде полупирамиды. Мы печатаем каждое число соответственно в порядке возрастания. Строки и столбцы будут увеличиваться, как показано в предыдущих программах шаблонов. Однако мы будем использовать инкрементный счет для вычисления возрастающих чисел.

Код:

Здесь, в приведенном выше блоке кода, мы назначили счетчик с переменной «num», который будет начинаться с 1 и соответственно увеличиваться. Количество строк и столбцов будет обрабатываться соответственно с помощью цикла for «ith» и «jth». Я бы порекомендовал попробовать и обратную реализацию для того же вопроса.

Шаблон-8: Полная пирамида со звездочкой «*»

Последняя программа паттернов, которую мы проанализируем, как решить сегодня, - это полная пирамида с звездочкой. Вы можете попробовать это самостоятельно с числами для лучшего концептуального понимания.

Мы будем использовать дополнительную переменную для вычисления пробелов, необходимых в соответствии с задачей. Вычисления для строк и столбцов останутся почти такими же, как в предыдущих вопросах программирования шаблонов.

Код:

В этой программе-шаблоне мы использовали число ’n’ для ввода от пользователя. Переменная «k» используется для расчета количества пробелов соответственно. Как только количество пробелов будет подсчитано, мы вычтем оставшиеся пробелы. I-я строка и j-й столбец рассчитываются так же, как и во всех других программах шаблонов.

Заключение:

В этой статье нам удалось охватить большинство основных вопросов по программированию шаблонов, которые могут быть заданы на собеседовании, и способы их решения систематически.

В мире программирования возможно множество шаблонов, и есть еще множество шаблонов, которые вы можете построить, используя язык программирования по вашему выбору.

Если вы, ребята, заинтересованы в этом, я также сделаю часть 2, охватывающую больше подобных вопросов программирования шаблонов, которые потенциально могут быть заданы на собеседовании.

Кроме того, зрители могут свободно сообщать мне, если у вас есть какие-либо вопросы относительно решений проблем, которые мы решили сегодня. Кроме того, не стесняйтесь предлагать больше шаблонов вопросов, которые, по вашему мнению, мне следует осветить в будущем.

Ознакомьтесь с некоторыми из моих других статей, которые могут вам понравиться!









Спасибо всем, что дожили до конца. Надеюсь, вам понравилось читать эту статью. Желаю всем удачного дня впереди!