Ответ на распространенный вопрос на собеседовании.
Поскольку я изучаю Python уже полтора года, я решил попробовать ответить на вопросы на собеседовании по кодированию на случай, если когда-нибудь пойду на собеседование по кодированию. Конечно, я мог бы посетить многочисленные веб-сайты, которые дают ответы на эти вопросы по кодированию, но я подумал, что для моего общего обучения будет лучше решать вопросы самостоятельно. Идея состоит в том, что, если повезет, мыслительный процесс, который я использую для решения проблемы, закрепится в сером веществе моего мозга, и, надеюсь, в какой-то момент я смогу восстановить эту логику в какой-то момент в будущем.
Вопрос интервью, который я выбрал для этого поста, состоит в том, чтобы проверить наличие дубликатов и троек в списке.
Псевдокод для извлечения дубликатов в списке приведен ниже:
- Определите список чисел или строк, который содержит несколько дубликатов.
- Определите пустой список, называемый дубликатами.
- Определите функцию print_duplicates, которая принимает на вход список чисел или строк.
- Создайте цикл for, который выполняет итерацию i от 0 до длины списка.
- Создайте второй цикл for, который выполняет итерацию j от i+1 до длины списка.
- Если list[i] равен list[j], то добавьте i в список, который был определен как дубликаты.
- Как только два цикла for будут пройдены, функция завершится и вернет список, дубликаты, который к этому времени будет содержать все повторяющиеся числа в исходном списке.
- Распечатайте содержимое списка, дублируйте, вызвав функцию печати вместе с функцией, print_duplicates.
Код функции print_duplicates можно найти на скриншоте ниже:
Как только я научился создавать функцию для печати дубликатов, я подумал, что было бы неплохо увидеть, как легко будет печатать три экземпляра в списке.
Псевдокод для извлечения троек в списке приведен ниже:
- Определите список чисел или строк, который содержит несколько троек.
- Определите пустой список, называемый тройным.
- Определите функцию print_triplicates, которая принимает на вход список чисел или строк.
- Создайте цикл for, который выполняет итерацию i от 0 до длины списка.
- Создайте второй цикл for, который выполняет итерацию j от i+1 до длины списка.
- Создайте третий цикл for, который перебирает k от j+1 до длины списка.
- Если list[i] равно list[j] и list[i] равно list[k], то добавьте i в список, который был определен как тройной.
- Как только три цикла for будут пройдены, функция завершится и вернет список, triplicates, который к этому времени будет содержать все тройные числа в исходном списке.
- Распечатайте содержимое списка, triplicates, вызвав функцию печати вместе с функцией print_triplicates.
Код функции print_triplicates можно найти на снимке экрана ниже:
Как видно из двух приведенных выше сценариев, требуется лишь небольшая модификация, чтобы изменить характер функции. Всего лишь с одним дополнительным циклом for я смог изменить функцию с проверки дубликатов на проверку тройных повторов.
Спасибо за чтение.
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.