💡Задача: Сжатие строки
Условие: дается массив символов chars, сожмите его, используя следующий алгоритм:
Начинайте с пустой строки s. Для каждой группы последовательных повторяющихся символов в chars:
Если длина группы равна 1, добавьте символ для просмотра.
В противном случае добавьте символ, за которым следует длина группы.
Сжатые строки не должны возвращаться отдельно, а вместо этого должны храниться во входном символьном массиве chars. Обратите внимание, что длина группы, равная 10 или более, будет разделена на несколько символов в chars.
После того, как вы закончите изменять входной массив, верните новую длину массива.
Вы должны написать алгоритм, который использует только постоянное дополнительное пространство.
Пример:
Ввод: chars = ["a","a","b","b","c","c","c"]
Вывод: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"]
Решение
Пишите свое решение в комментариях👇
@python_job_interview
Условие: дается массив символов chars, сожмите его, используя следующий алгоритм:
Начинайте с пустой строки s. Для каждой группы последовательных повторяющихся символов в chars:
Если длина группы равна 1, добавьте символ для просмотра.
В противном случае добавьте символ, за которым следует длина группы.
Сжатые строки не должны возвращаться отдельно, а вместо этого должны храниться во входном символьном массиве chars. Обратите внимание, что длина группы, равная 10 или более, будет разделена на несколько символов в chars.
После того, как вы закончите изменять входной массив, верните новую длину массива.
Вы должны написать алгоритм, который использует только постоянное дополнительное пространство.
Пример:
Ввод: chars = ["a","a","b","b","c","c","c"]
Вывод: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"]
Решение
Пишите свое решение в комментариях👇
@python_job_interview
Напишите функцию, которая возвращает количество нулей в конце факториала числа
n!
Например, для
5! = 5 * 4 * 3 * 2 * 1 = 120
, мы вернем 1
, потому что в 120
ровно 1
ноль в конце.📌 Ответ
Пишите свое решение в комментариях👇
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Сортировка массива
Условие: дается массив целых чисел nums, отсортируйте массив в порядке возрастания и верните его.
Вы должны решить проблему без использования каких-либо встроенных функций в O(nlog(n)) временной сложности и с наименьшей возможной пространственной сложностью.
Пример:
Ввод: nums = [5,2,3,1]
Вывод: [1,2,3,5]
Ввод: nums = [5,1,1,2,0,0]
Вывод: [0,0,1,1,2,5]
Решение
Пишите свое решение в комментариях👇
@python_job_interview
Условие: дается массив целых чисел nums, отсортируйте массив в порядке возрастания и верните его.
Вы должны решить проблему без использования каких-либо встроенных функций в O(nlog(n)) временной сложности и с наименьшей возможной пространственной сложностью.
Пример:
Ввод: nums = [5,2,3,1]
Вывод: [1,2,3,5]
Ввод: nums = [5,1,1,2,0,0]
Вывод: [0,0,1,1,2,5]
Решение
Пишите свое решение в комментариях👇
@python_job_interview
💡Задача: Игра в угадайку
Условие: играем в угадайку по следующей схеме:
Выбирается число от 1 до n. Надо отгадать загаданное число. После каждой неудачной попытки говорится больше или меньше заданное число.
Надо реализовать API:
-1: загаданное число больше выбранного;
1: загаданное число меньше выбранного;
0: загаданное число и выбранное совпали.
Необходимо вернуть загаданное число.
Пример:
Ввод: n = 10, pick = 6
Вывод: 6
Решение
Пишите свое решение в комментариях👇
@python_job_interview
Условие: играем в угадайку по следующей схеме:
Выбирается число от 1 до n. Надо отгадать загаданное число. После каждой неудачной попытки говорится больше или меньше заданное число.
Надо реализовать API:
-1: загаданное число больше выбранного;
1: загаданное число меньше выбранного;
0: загаданное число и выбранное совпали.
Необходимо вернуть загаданное число.
Пример:
Ввод: n = 10, pick = 6
Вывод: 6
Решение
Пишите свое решение в комментариях👇
@python_job_interview
🔗 eecs376.github.io/notes/algorithms.html
Прокачивайся — и тогда ИИ тебя не заменит)
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Шпаргалка для алгособеса 2 — графовые и строковые алгоритмы
📌 Читать дальше
📌Часть 1: алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра
@python_job_interview
📌 Читать дальше
📌Часть 1: алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра
@python_job_interview
💡 Топ 150 задач c собеседований.
Это большой списиок самых популярных задач, которые спрашивают на собесах.
Задачи, которые покрывают 90% задач, структур данных, алгоритмов которые спрашивают на собеседованиях.
📂 Список
@python_job_interview
Это большой списиок самых популярных задач, которые спрашивают на собесах.
Задачи, которые покрывают 90% задач, структур данных, алгоритмов которые спрашивают на собеседованиях.
📂 Список
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📉 Текущая длительность котировок
Сложность: Средняя
Условие задачи: напишите алгоритм, который сохраняет котировки некоторой акции текущего дня и осуществляет подсчёт, сколько дней до этого стоимость бумаг была меньше или равна цена на текущий день (включая текущий день).
Пример:
Ввод:
Пишите свое решение в комментариях👇
@python_job_interview
Сложность: Средняя
Условие задачи: напишите алгоритм, который сохраняет котировки некоторой акции текущего дня и осуществляет подсчёт, сколько дней до этого стоимость бумаг была меньше или равна цена на текущий день (включая текущий день).
Пример:
Ввод:
["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
[[], [100], [80], [60], [70], [60], [75], [85]]
Вывод: [null, 1, 1, 1, 2, 1, 4, 6]
Объяснение:StockSpanner stockSpanner = new StockSpanner();
stockSpanner.next(100); // return 1
stockSpanner.next(80); // return 1
stockSpanner.next(60); // return 1
stockSpanner.next(70); // return 2
stockSpanner.next(60); // return 1
stockSpanner.next(75); // return 4, так как цены за четыре предыдущих дня (включая сегодняшний) были меньше или равны;
stockSpanner.next(85); // return 6
📌
РешениеПишите свое решение в комментариях👇
@python_job_interview
Что происходит, скажем, в случае такого генераторного выражения?
gen = (num for num in range(10))
print(*gen)
*args
и **kwargs
— это способы передачи переменного количества аргументов в функцию. Другими словами, они "распаковывают" значения из массива/словаря/множества и т.п. и передают эти значения в функцию.def test(a, b): # Принимаем параметры a и b
print(a + b) # Выводим их сложение
array = [1, 2] # Создаём массив из двух чисел
test(*array) # Вывод: 3
При записи
*array
значения для функции были преобразованы в test(1, 2)
**kwargs
:def test(a,b): # Принимаем параметры a и b
print(a + b) # Выводим их сложение
dct = {'a':1, 'b':2} # Создаём словарь и записываем ключ-значение
test(**dct) # Вывод: 3
При записи
**dct
значения для функции были преобразованы в test(a=1, b=2)
def test1(*var): # Принимаем параметры в виде множества
print(var)
test1(1, 2, 3) # Вывод: (1, 2, 3)
def test2(**var): # Принимаем параметры в виде словаря
print(var)
test2(a=1, b=2) # Вывод: {'a': 1, 'b': 2}
Такие вот дела
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Каким будет результат выполнения кода?
Anonymous Quiz
5%
Adult
2%
13
59%
Not adult
0%
18
2%
None
19%
Error
12%
Узнать ответ
Forwarded from Python/ django
В статье описаны такие структуры данных как:
— Массив (Array)
— Динамический массив (Dynamic array)
— Связный список (Linked list)
— Стек (Stack)
— Очередь (Queue)
— Множество (Set)
— Карта (Map)
— Двоичное дерево поиска (Binary search tree)
— Префиксное дерево (Trie)
— Граф (Graph)
Параллельно рассказывается про самые популярные алгоритмы и ещё много всего)
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM