100 задач по Python: отладка кода
Реклама. ООО «ЛитРес», ИНН: 7719571260.
Оглавление
Группа авторов. 100 задач по Python: отладка кода
Глава 1. Установка Python
Глава 2. Функции Python
Глава 3. Отладка кода
Глава 4. Задачи для решения на Python
10 базовых задач и решения на Python 3
№1. 1) Сумма двух чисел
№2. 2) Площадь прямоугольника
№3. 3) Среднее арифметическое трёх чисел
№4. 4) Перевод секунд в минуты и секунды
№5. 5) Чётное или нечётное
№6. 6) Минимум из трёх чисел
№7. 7) Таблица умножения для числа
№8. 8) Сумма чисел от 1 до N
№10. 10) Проверка палиндрома
30 задач уровня «чуть сложнее базовых» и решения на Python 3
№11. 1) Сумма цифр числа
№12. 2) Количество цифр
№13. 3) Разворот числа
№14. 4) Проверка простого числа
№15. 5) Количество делителей
№16. 6) НОД (алгоритм Евклида)
№17. 7) НОК через НОД
№18. 8) Факториал (без рекурсии)
№19. 9) Числа Фибоначчи (n-й элемент)
№20. 10) Сумма ряда: 1/1 + 1/2 + … + 1/n
№22. 12) Подсчёт положительных/отрицательных/нулей
№23. 13) Сдвиг списка вправо на 1
№24. 14) Удаление всех чётных
№25. 15) Количество различных элементов
№26. 16) Частоты элементов (словарь)
№27. 17) Самое частое слово
№28. 18) Нормализация пробелов
№29. 19) Капитализация (каждое слово с заглавной)
№30. 20) Проверка “анаграммы”
№31. 21) Количество слов, начинающихся с буквы
№32. 22) Сумма матрицы
№33. 23) Максимум в матрице и его координаты
№34. 24) Сумма главной диагонали
№35. 25) Транспонирование матрицы
№36. 26) “Шифр Цезаря” для английских букв
№37. 27) Проверка правильных скобок ()
№38. 28) Количество дней в месяце
№39. 29) Конвертация времени в секунды и обратно
№40. 30) “Угадай число” (мини-игра)
30 задач среднего уровня сложности и решения на Python 3
№41. 1) Сжатие строки (RLE)
№42. 2) Распаковка RLE
№43. 3) Проверка «почти палиндром»
№44. 4) Самая длинная подстрока без повторов
№45. 5) Пересечение двух списков (с учётом кратности)
№46. 6) Два числа с суммой K (two-sum)
№47. 7) Сортировка подсчётом (для чисел 0..100)
№48. 8) Разбиение на пары: максимальная сумма минимума
№49. 9) Максимальная разница между соседями после сортировки
№50. 10) Слияние двух отсортированных списков
№51. 11) Удалить дубликаты из отсортированного списка
№52. 12) Максимальная сумма подмассива (Kadane)
№53. 13) Найти подмассив с суммой K (неотрицательные числа)
№54. 14) Сумма на отрезке (префиксные суммы)
№55. 15) Разность массивов (мультимножества)
№56. 16) Сумма чисел в строке
№57. 17) Валидатор пароля
№58. 18) Удалить пунктуацию
№59. 19) Топ-3 самых частых слов
№60. 20) Группировка анаграмм
№61. 29) Мини-стек с операциями
№62. 30) Очередь задач (симуляция)
№63. Сумма квадратов
№64. Сумма цифр (через строку)
№65. Количество слов, содержащих букву
№66. Минимальная длина слова
№67. Удалить дубликаты, сохранив порядок
№68. Стабильная сортировка по модулю
№69. Ближайшее число
№70. Второй максимум без сортировки
30 задач сложного уровня и решения на Python 3
№71. 1) Проверка «изоморфных» строк
№72.2) RLE-сжатие (символ+кол-во)
№73. 3) Проверка скобок ()[]{}
№74. 4) Постфиксная запись (RPN) с + – * /
№75. 5) Префиксные суммы: много запросов суммы
№76. 6) Разность на отрезке: массив разностей
№77. 7) Two-sum: вывести индексы
№78. 8) Подмассив с суммой k (неотрицательные) – вывести границы
№79. 9) Максимальная сумма подмассива (Kadane) + границы
№80. 10) Частотная сортировка
№81. 11) Топ-K частых слов
№82. 12) Объединение отрезков + длина объединения
№83. 13) Планировщик: максимум непересекающихся занятий
№84. 14) Минимум комнат для встреч
№85. 15) Матрица: кратчайший путь (веса 0/1) – 0-1 BFS
№86. 16) Количество островов + размер самого большого (4-соседство)
№87. 17) Топологическая сортировка (проверка на цикл)
№88. 18) Кратчайший путь в невзвешенном графе (BFS) + восстановление
№89. 19) DP: количество способов подняться по лестнице
№90. 20) DP: минимальная стоимость пути по клеткам
№91. 21) DP: наибольшая общая подпоследовательность (LCS) – длина
№92. 22) DP: рюкзак 0/1 (макс. стоимость при ограничении веса)
№93. 23) Количество простых чисел до n (решето)
№94. 24) НОД и НОК двух чисел
№95. 25) Проверка палиндрома (игнорируя пробелы и регистр)
№96. 26) Повернуть массив вправо на k
№97. 27) Уникальные элементы (встречаются ровно один раз)
№98. 28) Кратчайшее расстояние от каждой клетки до ближайшей "1" (мульти-источник BFS)
№99. 29) Сбалансированные скобки только из () – минимальное число удалений
№100. 30) Маршрут с телепортами и препятствиями (0-1 BFS + восстановление пути)
Глава 5. Чистый код – как писать так, чтобы вас понимали
Отрывок из книги
В Python нет “команд” как отдельной сущности: обычно под этим понимают ключевые слова (keywords) и встроенные функции (built-ins). Ниже – списки с кратким синтаксисом.
Ключевые слова Python (keywords)
.....
Кортеж: (1, 2)
Множество: {1, 2}
.....