Занимательные задачи PHP
353 subscribers
1 photo
15 links
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят по будням в 14.00.
Download Telegram
Задача 187
Определение четверти года

Дана дата в формате 'год-месяц-день'. Определите, к какой четверти года относится эта, и сколько дней осталось до конца этой четверти.

Четверти года:
- I: январь-март (1-3 месяц)
- II: апрель-июнь (4-6 месяц)
- III: июль-сентябрь (7-9 месяц)
- IV: октябрь-декабрь (10-12 месяц)
Задача 188
Следующий день рождения

Дана дата рождения в формате 'день.месяц'. Определите, в какой день недели будет его следующий день рождения.
Задача 189
Проверка на степень

Проверьте, что целое число является степенью другого целого числа. Например, 4 - вторая степень двойки, 9 - вторая степень тройки, 16 - одновременно степень и двойки и четверки. Результатом верните все варианты разложения числа на основание степени и ее показатель.
Задача 190
Русские предложения

Дан текст, разбитый на предложения. В тексте есть русские и английские слова. Напишите код, который получит массив предложений, состоящих только из русских слов.
1
Задача 191
Количество файлов

Дана папка. Подсчитайте количество файлов с расширением .html в этой папке.
Задача 192
Переворот слов

Дан текст. Напишите код, который перевернет каждое слово в этом тексте.
Задача 193
Файлы по папкам

Дана папка с файлами. Напишите код, который разложит эти файлы по папкам. В папку 1 первые 10 файлов, в папку 2 вторые 10 файлов и так далее.
1
Задача 194
Текст по файлам

Дан файл с текстом. Напишите код, который разложит части этого текста по файлам. Положите первые 10 строк текста в файл 1.txt, вторые 10 строк в файл 2.txt и так далее.
Задача 195
Сумма чисел из файла

Дан файл с текстом. В этом тексте встречаются числа. Найдите эти числа и запишите их в новый файл, каждое число на своей строке.
Задача 196
Емейлы из файла

Дан файл с текстом. В этом тексте встречаются емейлы. Найдите эти емейлы и запишите их в новый файл, каждый емейл на своей строке.
Задача 197
Перестановка рядов матрицы

Дан произвольный двухмерный массив: [ [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], ]

Переставьте местами два заданных ряда:
[
[51, 52, 53, 54, 55],
[21, 22, 23, 24, 25],
[31, 32, 33, 34, 35],
[41, 42, 43, 44, 45],
[11, 12, 13, 14, 15],
]
Задача 198
Перестановка столбцов матрицы

Дан произвольный двухмерный массив: [ [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, 15, 13, 14, 12],
[21, 25, 23, 24, 22],
[31, 35, 33, 34, 32],
[41, 45, 43, 44, 42],
[51, 55, 53, 54, 52],
]
Задача 199
Перестановка элементов

Дан произвольный двухмерный массив: [ [11, 32, 13, 44, 55], [31, 42, 53, 66, 75], [12, 26, 33, 45, 52], [15, 22, 35, 64, 57], [21, 52, 32, 44, 38], ]

Найдите максимальный и минимальный элементы и поменяйте их местами.
Задача 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],
]
Задача 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],
]
Задача 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
]
👻1
Задача 204
Получение заданного элемента

Дан многомерный массив произвольного уровня вложенности: [ '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],
]
Задача 206
Конверсия времени

Дана переменная, содержащая некоторое количество секунд. Получите сколько дней, часов, минут и секунд содержится в этой переменной. Имеется ввиду, что сначала нужно выделить целое количество дней, из остатка выделить целое количество часов, из остатка выделить целое минут, а затем останется количество секунд. Результат представьте в виде ассоциативного массива.
Задача 207
Сжатие смежных чисел

Дан массив чисел. Замените все последовательности смежных одинаковых чисел на их количество и значение.

Пример:
[1, 1, 1, 2, 3, 3, 4, 4, 4, 4] → [[3, 1], [1, 2], [2, 3], [4, 4]]