Ответ на распространенный вопрос на собеседовании.

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

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

Псевдокод для извлечения дубликатов в списке приведен ниже:

  1. Определите список чисел или строк, который содержит несколько дубликатов.
  2. Определите пустой список, называемый дубликатами.
  3. Определите функцию print_duplicates, которая принимает на вход список чисел или строк.
  4. Создайте цикл for, который выполняет итерацию i от 0 до длины списка.
  5. Создайте второй цикл for, который выполняет итерацию j от i+1 до длины списка.
  6. Если list[i] равен list[j], то добавьте i в список, который был определен как дубликаты.
  7. Как только два цикла for будут пройдены, функция завершится и вернет список, дубликаты, который к этому времени будет содержать все повторяющиеся числа в исходном списке.
  8. Распечатайте содержимое списка, дублируйте, вызвав функцию печати вместе с функцией, print_duplicates.

Код функции print_duplicates можно найти на скриншоте ниже:

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

Псевдокод для извлечения троек в списке приведен ниже:

  1. Определите список чисел или строк, который содержит несколько троек.
  2. Определите пустой список, называемый тройным.
  3. Определите функцию print_triplicates, которая принимает на вход список чисел или строк.
  4. Создайте цикл for, который выполняет итерацию i от 0 до длины списка.
  5. Создайте второй цикл for, который выполняет итерацию j от i+1 до длины списка.
  6. Создайте третий цикл for, который перебирает k от j+1 до длины списка.
  7. Если list[i] равно list[j] и list[i] равно list[k], то добавьте i в список, который был определен как тройной.
  8. Как только три цикла for будут пройдены, функция завершится и вернет список, triplicates, который к этому времени будет содержать все тройные числа в исходном списке.
  9. Распечатайте содержимое списка, triplicates, вызвав функцию печати вместе с функцией print_triplicates.

Код функции print_triplicates можно найти на снимке экрана ниже:

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

Спасибо за чтение.

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.