Задача 200
Сборка счастливого билета
Дан массив из шести цифр. Проверьте, можно ли собрать из этих цифр счастливый билет.
Сборка счастливого билета
Дан массив из шести цифр. Проверьте, можно ли собрать из этих цифр счастливый билет.
🔥1
Задача 201
Добавление ряда и колонки в матрицу
Дан произвольный двухмерный массив: [ [11, 12, 13], [21, 22, 23], [31, 32, 33], ]
Напишите код, который добавит в него еще один ряд и еще один столбец, заполненные случайными значениями:
[
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
[41, 42, 43, 44],
]
Добавление ряда и колонки в матрицу
Дан произвольный двухмерный массив: [ [11, 12, 13], [21, 22, 23], [31, 32, 33], ]
Напишите код, который добавит в него еще один ряд и еще один столбец, заполненные случайными значениями:
[
[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
[41, 42, 43, 44],
]
Задача 202
Обнуление столбца
Дан произвольный двухмерный массив: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]
Напишите код, который будет обнулять заданный столбец:
[
[11, 12, 0, 14, 15],
[21, 22, 0, 24, 25],
[31, 32, 0, 34, 35],
[41, 42, 0, 44, 45],
[51, 52, 0, 54, 55],
]
Обнуление столбца
Дан произвольный двухмерный массив: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]
Напишите код, который будет обнулять заданный столбец:
[
[11, 12, 0, 14, 15],
[21, 22, 0, 24, 25],
[31, 32, 0, 34, 35],
[41, 42, 0, 44, 45],
[51, 52, 0, 54, 55],
]
Задача 203
Столбец матрицы
Дан произвольный двухмерный массив: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]
Напишите код, который получит массив значений заданного столбца:
[
13, 23, 33, 43, 54
]
Столбец матрицы
Дан произвольный двухмерный массив: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]
Напишите код, который получит массив значений заданного столбца:
[
13, 23, 33, 43, 54
]
👻1
Задача 204
Получение заданного элемента
Дан многомерный массив произвольного уровня вложенности: [ 'a' => [ 'b' => [ 'c' => '+++' ] ], ]
Сделайте функцию, которая будет возвращать элементы массива, параметром получая строку с ключами массива, разделенными точками:
func('a.b.c'); // вернет '+++'
Получение заданного элемента
Дан многомерный массив произвольного уровня вложенности: [ 'a' => [ 'b' => [ 'c' => '+++' ] ], ]
Сделайте функцию, которая будет возвращать элементы массива, параметром получая строку с ключами массива, разделенными точками:
func('a.b.c'); // вернет '+++'
Задача 205
Транспонирование матрицы
Дан произвольный двухмерный массив: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]
Выполните его транспонирование:
[
[11, 21, 31, 41, 51],
[12, 22, 32, 42, 52],
[13, 23, 33, 43, 53],
[14, 24, 34, 44, 54],
[15, 25, 35, 45, 55],
]
Транспонирование матрицы
Дан произвольный двухмерный массив: [ [11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35], [41, 42, 43, 44, 45], [51, 52, 53, 54, 55], ]
Выполните его транспонирование:
[
[11, 21, 31, 41, 51],
[12, 22, 32, 42, 52],
[13, 23, 33, 43, 53],
[14, 24, 34, 44, 54],
[15, 25, 35, 45, 55],
]
Задача 206
Конверсия времени
Дана переменная, содержащая некоторое количество секунд. Получите сколько дней, часов, минут и секунд содержится в этой переменной. Имеется ввиду, что сначала нужно выделить целое количество дней, из остатка выделить целое количество часов, из остатка выделить целое минут, а затем останется количество секунд. Результат представьте в виде ассоциативного массива.
Конверсия времени
Дана переменная, содержащая некоторое количество секунд. Получите сколько дней, часов, минут и секунд содержится в этой переменной. Имеется ввиду, что сначала нужно выделить целое количество дней, из остатка выделить целое количество часов, из остатка выделить целое минут, а затем останется количество секунд. Результат представьте в виде ассоциативного массива.
Задача 207
Сжатие смежных чисел
Дан массив чисел. Замените все последовательности смежных одинаковых чисел на их количество и значение.
Пример:
[1, 1, 1, 2, 3, 3, 4, 4, 4, 4] → [[3, 1], [1, 2], [2, 3], [4, 4]]
Сжатие смежных чисел
Дан массив чисел. Замените все последовательности смежных одинаковых чисел на их количество и значение.
Пример:
[1, 1, 1, 2, 3, 3, 4, 4, 4, 4] → [[3, 1], [1, 2], [2, 3], [4, 4]]
Задача 208
Валидация математического выражения
Дана строка с математическим выражением, содержащим числа, операторы +-*/ и скобки. Проверьте корректность расстановки операторов: - два оператора не могут стоять подряд - после открывающей скобки не может быть оператора (кроме унарного минуса) - перед закрывающей скобкой не может быть оператора - выражение должно начинаться и заканчиваться числом или скобкой
Пример:
"2*(3+4)-5/2" → true
"2*+3" → false
Валидация математического выражения
Дана строка с математическим выражением, содержащим числа, операторы +-*/ и скобки. Проверьте корректность расстановки операторов: - два оператора не могут стоять подряд - после открывающей скобки не может быть оператора (кроме унарного минуса) - перед закрывающей скобкой не может быть оператора - выражение должно начинаться и заканчиваться числом или скобкой
Пример:
"2*(3+4)-5/2" → true
"2*+3" → false
Задача 209
Генерация всех подмассивов с условием
Дан массив чисел. Сгенерируйте все возможные подмассивы, сумма элементов которых не превышает заданное число N. Выведите их в порядке увеличения длины.
Пример:
массив: [1, 2, 3], N: 4
результат: [[1], [2], [3], [1,2], [1,3]]
(подмассив [2,3] не выводится, так как сумма 5 > 4)
Генерация всех подмассивов с условием
Дан массив чисел. Сгенерируйте все возможные подмассивы, сумма элементов которых не превышает заданное число N. Выведите их в порядке увеличения длины.
Пример:
массив: [1, 2, 3], N: 4
результат: [[1], [2], [3], [1,2], [1,3]]
(подмассив [2,3] не выводится, так как сумма 5 > 4)
Задача 210
Проверка периодичности последовательности
Дана последовательность чисел. Определите, является ли она периодической (повторяется ли некий паттерн целиком от начала до конца последовательности). Если да, найдите длину наименьшего периода.
Примеры:
[1, 2, 1, 2, 1, 2] → true, период 2 (паттерн [1, 2])
[1, 2, 3, 1, 2, 3, 1] → true, период 3 (паттерн [1, 2, 3])
[1, 2, 3, 1, 2, 4] → false (нет полного повторения паттерна)
Проверка периодичности последовательности
Дана последовательность чисел. Определите, является ли она периодической (повторяется ли некий паттерн целиком от начала до конца последовательности). Если да, найдите длину наименьшего периода.
Примеры:
[1, 2, 1, 2, 1, 2] → true, период 2 (паттерн [1, 2])
[1, 2, 3, 1, 2, 3, 1] → true, период 3 (паттерн [1, 2, 3])
[1, 2, 3, 1, 2, 4] → false (нет полного повторения паттерна)
Задача 211
Определение типа последовательности
Дан массив чисел. Определите, является ли последовательность: 1) Арифметической прогрессией (постоянная разность между элементами) 2) Геометрической прогрессией (постоянное отношение между элементами) 3) Ни тем, ни другим
Верните строку: "арифметическая", "геометрическая" или "нет прогрессии".
Примеры:
[1, 3, 5, 7, 9] → "арифметическая" (разность 2)
[2, 4, 8, 16, 32] → "геометрическая" (отношение 2)
[1, 2, 3, 5, 8] → "нет прогрессии"
[5, 5, 5, 5, 5] → "арифметическая" (разность 0) и "геометрическая" (отношение 1)
Примечание: если массив подходит под оба типа, верните "арифметическая"
(приоритет у арифметической прогрессии).
Определение типа последовательности
Дан массив чисел. Определите, является ли последовательность: 1) Арифметической прогрессией (постоянная разность между элементами) 2) Геометрической прогрессией (постоянное отношение между элементами) 3) Ни тем, ни другим
Верните строку: "арифметическая", "геометрическая" или "нет прогрессии".
Примеры:
[1, 3, 5, 7, 9] → "арифметическая" (разность 2)
[2, 4, 8, 16, 32] → "геометрическая" (отношение 2)
[1, 2, 3, 5, 8] → "нет прогрессии"
[5, 5, 5, 5, 5] → "арифметическая" (разность 0) и "геометрическая" (отношение 1)
Примечание: если массив подходит под оба типа, верните "арифметическая"
(приоритет у арифметической прогрессии).
Задача 212
Перестановка максимального и минимального элементов
Дан массив чисел. Найдите в массиве максимальный и минимальный элементы и поменяйте их местами. Если максимальных или минимальных элементов несколько, поменяйте местами первые из найденных.
Примеры:
[3, 7, 2, 8, 5] → [3, 7, 8, 2, 5] (2 и 8 поменялись)
[1, 1, 4, 4, 2] → [4, 1, 4, 1, 2] (первая 1 и первая 4 поменялись)
[5, 5, 5, 5] → [5, 5, 5, 5] (массив не изменился)
Перестановка максимального и минимального элементов
Дан массив чисел. Найдите в массиве максимальный и минимальный элементы и поменяйте их местами. Если максимальных или минимальных элементов несколько, поменяйте местами первые из найденных.
Примеры:
[3, 7, 2, 8, 5] → [3, 7, 8, 2, 5] (2 и 8 поменялись)
[1, 1, 4, 4, 2] → [4, 1, 4, 1, 2] (первая 1 и первая 4 поменялись)
[5, 5, 5, 5] → [5, 5, 5, 5] (массив не изменился)
Задача 213
Сумма цифр числа до однозначного
Дано целое положительное число. Найдите сумму его цифр. Если полученная сумма больше 9, повторяйте процесс, пока не получите однозначное число (цифру от 1 до 9).
Примеры:
123 → 1+2+3 = 6 → 6
987 → 9+8+7 = 24 → 2+4 = 6 → 6
999 → 9+9+9 = 27 → 2+7 = 9 → 9
38 → 3+8 = 11 → 1+1 = 2 → 2
Этот процесс иногда называют "цифровым корнем" числа.
Сумма цифр числа до однозначного
Дано целое положительное число. Найдите сумму его цифр. Если полученная сумма больше 9, повторяйте процесс, пока не получите однозначное число (цифру от 1 до 9).
Примеры:
123 → 1+2+3 = 6 → 6
987 → 9+8+7 = 24 → 2+4 = 6 → 6
999 → 9+9+9 = 27 → 2+7 = 9 → 9
38 → 3+8 = 11 → 1+1 = 2 → 2
Этот процесс иногда называют "цифровым корнем" числа.
Задача 214
Чередование четных и нечетных
Дан массив чисел. Проверьте, чередуются ли в нем четные и нечетные числа. Массив считается "чередующимся", если каждый следующий элемент имеет противоположную четность предыдущему.
Примеры:
[1, 2, 3, 4, 5] → true (нечетное, четное, нечетное, четное, нечетное)
[2, 4, 6, 8] → false (все четные)
[1, 3, 2, 4, 7] → false (1→3: оба нечетные)
[10, 5, 8, 3, 2] → true (четное, нечетное, четное, нечетное, четное)
[] → true (пустой массив считается чередующимся)
[7] → true (один элемент всегда чередуется)
Чередование четных и нечетных
Дан массив чисел. Проверьте, чередуются ли в нем четные и нечетные числа. Массив считается "чередующимся", если каждый следующий элемент имеет противоположную четность предыдущему.
Примеры:
[1, 2, 3, 4, 5] → true (нечетное, четное, нечетное, четное, нечетное)
[2, 4, 6, 8] → false (все четные)
[1, 3, 2, 4, 7] → false (1→3: оба нечетные)
[10, 5, 8, 3, 2] → true (четное, нечетное, четное, нечетное, четное)
[] → true (пустой массив считается чередующимся)
[7] → true (один элемент всегда чередуется)
Задача 215
Суммирование чисел из файлов
Дана папка с текстовыми файлами. В каждом файле находятся целые числа, разделенные пробелами и переносами строк. Напишите скрипт, который:
1. Прочитает все файлы с расширением .txt в папке
2. Найдет сумму всех чисел из всех файлов
3. Запишет результат в новый файл result.txt
Пример структуры:
file1.txt: "10 20 30"
file2.txt: "5
15
25"
file3.txt: "100 200"
Результат: 10+20+30+5+15+25+100+200 = 405
Файл result.txt: "405"
Примечание: обрабатывайте только файлы с расширением .txt
Суммирование чисел из файлов
Дана папка с текстовыми файлами. В каждом файле находятся целые числа, разделенные пробелами и переносами строк. Напишите скрипт, который:
1. Прочитает все файлы с расширением .txt в папке
2. Найдет сумму всех чисел из всех файлов
3. Запишет результат в новый файл result.txt
Пример структуры:
file1.txt: "10 20 30"
file2.txt: "5
15
25"
file3.txt: "100 200"
Результат: 10+20+30+5+15+25+100+200 = 405
Файл result.txt: "405"
Примечание: обрабатывайте только файлы с расширением .txt
Задача 216
Поиск самого большого файла
Дана папка с файлами различных типов. Напишите скрипт, который:
1. Найдет самый большой файл в папке по размеру (в байтах)
2. Выведет информацию о нем: имя файла, размер в КБ, расширение
3. Создаст файл largest_file.txt и запишет туда эту информацию
Формат вывода в файл:
"Самый большой файл: имя_файла.расширение
Размер: 1234.56 КБ"
Если несколько файлов имеют одинаковый максимальный размер,
выберите первый найденный.
Примечание: не рассматривайте подпапки, только файлы в текущей папке.
Поиск самого большого файла
Дана папка с файлами различных типов. Напишите скрипт, который:
1. Найдет самый большой файл в папке по размеру (в байтах)
2. Выведет информацию о нем: имя файла, размер в КБ, расширение
3. Создаст файл largest_file.txt и запишет туда эту информацию
Формат вывода в файл:
"Самый большой файл: имя_файла.расширение
Размер: 1234.56 КБ"
Если несколько файлов имеют одинаковый максимальный размер,
выберите первый найденный.
Примечание: не рассматривайте подпапки, только файлы в текущей папке.
Задача 217
Подсчет файлов по типам в дереве папок
Дана корневая папка с вложенными подпапками. Напишите скрипт, который:
1. Рекурсивно обойдет все подпапки
2. Подсчитает количество файлов по расширениям
3. Запишет результат в файл file_stats.txt
Пример:
Если в папках есть файлы: a.txt, b.txt, c.jpg, d.pdf, e.txt
Результат:
.txt: 3 файла
.jpg: 1 файл
.pdf: 1 файл
Всего файлов: 5
Примечание: файлы без расширения не учитывать.
Подсчет файлов по типам в дереве папок
Дана корневая папка с вложенными подпапками. Напишите скрипт, который:
1. Рекурсивно обойдет все подпапки
2. Подсчитает количество файлов по расширениям
3. Запишет результат в файл file_stats.txt
Пример:
Если в папках есть файлы: a.txt, b.txt, c.jpg, d.pdf, e.txt
Результат:
.txt: 3 файла
.jpg: 1 файл
.pdf: 1 файл
Всего файлов: 5
Примечание: файлы без расширения не учитывать.
Задача 218
Поиск дубликатов файлов
Дана корневая папка с вложенными подпапками. Напишите скрипт, который:
1. Рекурсивно обойдет все файлы
2. Найдет файлы-дубликаты (файлы с одинаковым содержимым)
3. Запишет результат в файл duplicates.txt
Формат вывода в файл:
"Группа дубликатов 1:
- /путь/к/файлу1.txt
- /путь/к/файлу2.txt
Группа дубликатов 2:
- /путь/к/image1.jpg
- /путь/к/image2.jpg
- /путь/к/image3.jpg"
Дубликаты определять по хешу содержимого файла (например, MD5).
Файлы с одинаковым хешем считаются дубликатами.
Примечание: не выводить группы из одного файла.
Поиск дубликатов файлов
Дана корневая папка с вложенными подпапками. Напишите скрипт, который:
1. Рекурсивно обойдет все файлы
2. Найдет файлы-дубликаты (файлы с одинаковым содержимым)
3. Запишет результат в файл duplicates.txt
Формат вывода в файл:
"Группа дубликатов 1:
- /путь/к/файлу1.txt
- /путь/к/файлу2.txt
Группа дубликатов 2:
- /путь/к/image1.jpg
- /путь/к/image2.jpg
- /путь/к/image3.jpg"
Дубликаты определять по хешу содержимого файла (например, MD5).
Файлы с одинаковым хешем считаются дубликатами.
Примечание: не выводить группы из одного файла.
❤1
Задача 219
Архивация старых файлов
Дана корневая папка с вложенными подпапками. Напишите скрипт, который:
1. Найдет все файлы, которые не изменялись более 30 дней
2. Создаст папку "archive" в корневой папке
3. Переместит старые файлы в папку "archive", сохраняя структуру подпапок
4. Запишет отчет в файл archiving_report.txt
Формат отчета:
"Архивировано файлов: 8
Освобождено места: 4.2 МБ
Архивированные файлы:
- old_report.pdf (из /docs/)
- backup.zip (из /backups/)
- photo1.jpg (из /images/vacation/)"
Структура подпапок в папке "archive" должна повторять исходную структуру.
Примечание: файлы должны физически перемещаться, а не копироваться.
Архивация старых файлов
Дана корневая папка с вложенными подпапками. Напишите скрипт, который:
1. Найдет все файлы, которые не изменялись более 30 дней
2. Создаст папку "archive" в корневой папке
3. Переместит старые файлы в папку "archive", сохраняя структуру подпапок
4. Запишет отчет в файл archiving_report.txt
Формат отчета:
"Архивировано файлов: 8
Освобождено места: 4.2 МБ
Архивированные файлы:
- old_report.pdf (из /docs/)
- backup.zip (из /backups/)
- photo1.jpg (из /images/vacation/)"
Структура подпапок в папке "archive" должна повторять исходную структуру.
Примечание: файлы должны физически перемещаться, а не копироваться.
❤2
Задача 220
Нахождение самой длинной последовательности одинаковых символов
Дана строка. Найдите самую длинную последовательность одинаковых символов, идущих подряд, и верните ассоциативный массив ['char' => символ, 'length' => длина].
Примеры:
"aaabbccccd" → ['char' => "c", 'length' => 4]
"пррриивет" → ['char' => "р", 'length' => 3]
"abcde" → ['char' => "a", 'length' => 1] (любой из символов)
"" → ['char' => "", 'length' => 0]
Если несколько последовательностей имеют одинаковую максимальную длину,
верните информацию о первой из них.
Примечание: учитывайте все символы, включая пробелы.
Нахождение самой длинной последовательности одинаковых символов
Дана строка. Найдите самую длинную последовательность одинаковых символов, идущих подряд, и верните ассоциативный массив ['char' => символ, 'length' => длина].
Примеры:
"aaabbccccd" → ['char' => "c", 'length' => 4]
"пррриивет" → ['char' => "р", 'length' => 3]
"abcde" → ['char' => "a", 'length' => 1] (любой из символов)
"" → ['char' => "", 'length' => 0]
Если несколько последовательностей имеют одинаковую максимальную длину,
верните информацию о первой из них.
Примечание: учитывайте все символы, включая пробелы.