Python Simple
226 subscribers
55 photos
6 videos
175 links
by mr.Gold
Download Telegram
Воскресная задачка. Кстати у меня она была давным давно в Яндекс)
6. Move Zeroes (легкая)
leetcode.com/problems/move-zeroes
Получаем целочисленный массив nums, необходимо перенести все 0 в его конец, сохраняя порядок ненулевых элементов.

Пример 1:
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]

Пример 2:
Input: nums = [0]
Output: [0]

def moveZeroes(nums):
«Ваше решение»

Ваша задача решить эту задачу на литкоде и успешно засабмитить

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


Список всех задач
#ps_leetcode
👍5
Тот самый день, когда хотел пойти на работу как жест доброй воли, но на работе сказали, что день рабочий
7. Valid Palindrome (легкая)
leetcode.com/problems/valid-palindrome
Фраза является палиндромом, если после преобразования всех прописных букв в строчные и удаления всех не буквенно-цифровых символов она читается одинаково вперед и назад. На вход подается строка s верните True, если полиндром и False, если нет.

Пример 1:
Input: s = "A man, a plan, a canal: Panama"
Output: true
Explanation: "amanaplanacanalpanama" полиндром.

Пример 2:
Input: s = "race a car"
Output: false
Explanation: "raceacar" не полиндром.

Пример 3:
Input: s = " "
Output: true

def isPalindrome(s):
«Ваше решение»

Ваша задача решить эту задачу на литкоде и успешно засабмитить

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


Список всех задач
#ps_leetcode
6
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет, у канала есть чат, там можно задавать вопросы, не относящиеся к постам и что-то обсуждать. Ссылки на него нет, но если кто-то не знает, как его найти, прикрепляю видео)
👍6
Воскресная задачка:
8. Valid Palindrome II (легкая)
leetcode.com/problems/valid-palindrome-ii
Есть входная строка s, верните True если она может стать подиндромом при удалении не более 1-го символа и False, если нельзя.

Пример 1:
Input: s = "aba"
Output: true

Пример 2:
Input: s = "abca"
Output: true
Explanation: You could delete the character 'c'.

Пример 3:
Input: s = "abc"
Output: false

def validPalindrome(s):
«Ваше решение»

Ваша задача решить эту задачу на литкоде и успешно засабмитить

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


Список всех задач
#ps_leetcode
🔥3
Воскресная задачка, закрепляем two pointers:
9. Remove Duplicates from Sorted Array (легкая)
leetcode.com/problems/remove-duplicates-from-sorted-array
На вход подается целочисленный массив nums, отсортированный в неубывающем порядке, удалите дубликаты, чтобы каждый уникальный элемент появлялся только один раз. Порядок элементов должен быть сохранен. Затем верните количество уникальных элементов в nums.
Важно, надо изменить сам списов и вернуть кол-во уникальных элементов.

Пример 1:
Input: nums = [1,1,2]
Возвращаем: 2
При этом nums = [1,2,_] или nums = [1,2], главное, чтобы первые k элементов были уникальными

Пример 2:
Input: nums = [0,0,1,1,1,2,2,3,3,4]
Возвращаем: 5
При этом nums = [0,1,2,3,4,_,_,_,_,_] или nums = [0,1,2,3,4]

def removeDuplicates(nums):
«Ваше решение»

Ваша задача решить эту задачу на литкоде и успешно засабмитить

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


Список всех задач
#ps_leetcode
4
Где искать стажировки?
Есть несколько надежных мест, где можно находить стажировки. Мониторить надо крупные компании. У многих уже есть отдельные лендинги под стажировки. Я решил посмотреть, что есть в ближайшее время и нашел осенний набор на стажировку в Тинькофф. Надо будет завести какую-то таблицу или страничку с подборкой стажировок, чтобы не пропускать их.
Стажировка в крупной компании - это очень хороший шанс получить привлекательную строчку в резюме и влиться в комьюнити единомышленников и двигаться семимильными шагами к единой цели. Если хорошо проявить себя на стажировке, то можно быстро вырасти в компании. Если рост не такой быстрый, как вам хочется, то через год можно будет перейти в другую крупную компанию, куда вас уже с удовольствием позовут, а ещё через пару лет вернуться в эту компанию на более серьезную позицию. Но тут каждый сам выбирает, как ему двигаться по карьерной лестнице.
К чему этот спич.
У каждой стажировки, тем более, если компания не первый раз проводит набор, есть рекомендации к подготовке. У некоторых есть тренировочные контесты с задачами. Тинькофф в этом смысле не исключение. У них 12 задач и я подумал, почему бы не создать сейчас 12 постов с задачами и в комментариях мы бы общими усилиями их разбирали, не обязательно спешить и не обязательно решить все 12 сегодня (можно растянуть на месяц и мб не получится решить всё). Затем эталонные решения я буду прикреплять к самой задаче, но ход рассуждения будет в комментариях (практически как и сейчас с задачами с литкода). Было бы отлично, если бы вы помогали друг-другу дойти до верного решения, я тоже буду помогать и разбираться сам, т.к. задачи ещё не решал.
Если у кого-то есть идеи или вопросы, можно их обозначить в комментариях.
Ссылка на стажировку https://fintech.tinkoff.ru/start/python/
🔥6
Всем привет! Стало интересно, на сколько востребована тема стажировок и сколько времени в канале стоит уделять стажировкам
Anonymous Poll
65%
Буду пробовать попасть на стажировку
15%
На стажировку не хочу, но задачи разбирать интересно
9%
Тема стажировок не интересует
12%
Посмотреть ответы
Мы ознакомились с тем, что такое хэш-таблицы, и после вопросов про словарь, обычно спрашивают про них.
5-ый вопрос:
Что такое Хэш-таблица?

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

Какая сложность операций с хэш-таблицами?
Добавление/удаление/поиск/получение значения по ключу происходит за О(1).

Какие данные могут быть ключом в хэш таблице?
Как и в словаре, https://t.me/python_simple/89

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

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

все вопросы
#ps_question
👍4🔥1
Тинькофф задачи с контекста стажировки 2023 Осень:
1. Задача 1
2. Задача 2
3. Задача 3
4. Задача 4
5. Задача 5
6. Задача 6
7. Задача 7
8. Задача 8
9. Задача 9
10. Задача 10
11. Задача 11
12. Задача 12
👍3
Всем привет!
Разместил первые 6 задач из тренировочного контеста. До выходных можно ознакомиться с ними и можно начать что-то делать, но на выходных уже парочку решим, как всегда в комментариях под задачами.
https://t.me/python_simple/116 - оглавление с задачами, также ссылку на него можно найти в закрепе, как и все остальные.
Есть пара особенностей. В отличие от задач на литкоде, тут нет функции, которая принимает параметры и возвращает ответ. Тут параметры надо считывать из входного потока. Для этого используется функцию input(), думаю, что многие из вас с ней знакомы.
Например, если на входном потоке есть несколько строк, то каждую из них надо считать отдельным input-ом.
Далее, небольшой лайфхак, если нам передается строка, в которой несколько чисел, например.
12 32 4 777
input() считает такую строку "12 32 4 777"
Можно написать так и сразу получить 4 инта:
a, b, c, d = map(int, input().split()) - тут мы считываем строку, делим её по пробелу и каждый элемент приводим к числу.
my_list = list(map(int, input().split())) - а так мы получим список интов.

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

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

Протестируем сначала, как пойдут эти задачи, потом пойдем дальше
🔥4👍2
Всем привет! Пасмурная погода - самое хорошее время для решения алгоритмических задач) Можно присоединиться к решению задач из контеста https://t.me/python_simple/116 также по задачам в чате https://t.me/python_simple/109 больше активности, поэтому кто решает, может вступить. Через неделю можно будет сделать отдельный чат по этому контесту, чтобы обсуждать какие-то тонкости решения, но также решения все равно будут тут в канале.
Ссылка, где найти контест, чтобы самому засабмитить свои решения есть в этом посте https://t.me/python_simple/113
4
Ура! 10- ая юбилейная воскресная задачка, закрепляем two pointers на средней задаче, она очень похожа на предыдущую https://t.me/python_simple/112:
10. Remove Duplicates from Sorted Array II (средняя)
leetcode.com/problems/remove-duplicates-from-sorted-array-ii

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

Пример 1:
Input: nums = [1,1,1,2,2,3]
Output: 5
При этом nums = [1,1,2,2,3,_], но последние элементы не должны быть именно «_», они могут быть чем угодно, их можно не трогать

Пример 2:
Input: nums = [0,0,1,1,1,1,2,3,3]
Output: 7
При этом nums = [0,0,1,1,2,3,3,_,_]

def removeDuplicates(nums):
«Ваше решение»

Ваша задача решить эту задачу на литкоде и успешно засабмитить

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


Список всех задач
#ps_leetcode
3👍1
Немного поменяем формат разбора вопросов. Будем как с задачами. Задаю вопрос, затем обсуждаем в комментариях, затем формируем ответ. И запишу по результатам темы, которые стоит осветить отдельно.
6-ой вопрос:
Как передаются значения в функцию, по ссылке или по значению, и что это значит?

Все переменные в функции передаются по ссылке. То есть, если мы внутри функции будем менять переданный туда список, то он будет меняться и вне функции. Поэтому, если мы не хотим менять изначальный объект, то надо передавать копию объекта в функцию или мы должны знать, что условно список не будет изменяться внутри функции. Это относится к изменяемым типам.
С изменяемыми типами все проще. Если мы передадим инт или строку, то внутри функции мы не сможем их изменить.

все вопросы
#ps_question
3