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

Дана строка с текстом, среди которого встречается время в формате '12:59:59'. Получите из этой строки массив, содержащий время, в котором минуты равны секундам.
Задача 111
Список дат на N дней

Дана дата в формате '31.12.2025'. Напишите скрипт, который выведет список дней от заданной даты на N дней вперед, прибавляя по одному дню.
Задача 112
Часы и минуты перевернуты

Дана строка с текстом, среди которого встречается время в формате '12:59'. Получите из этой строки массив, содержащий время, в котором часы и минуты состоят из тех же цифр, но в обратном порядке. Например, вот такое время: '12:21'.
Задача 113
Сменить формат даты в строке

Дана строка с текстом, среди которого встречаются даты в формате '2025-12-31'. Напишите скрипт, который найдет в тексте эти даты и сменит им формат на '31.12.2025'.
Задача 114
Часы и минуты одинаковые цифры

Дана строка с текстом, среди которого встречается время в формате '12:59'. Получите из этой строки массив, содержащий время, в котором часы и минуты состоят из тех же цифр. Например, мы берем и время '12:12', и время '12:21'.
Задача 115
Список дат без выходных

Дана дата в формате '31.12.2025'. Напишите скрипт, который выведет список дней от заданной даты на N дней вперед, прибавляя по одному дню, но не включая в этот список выходные дни.
Задача 116
Позиция знака препинания

Дана строка. Найдите позицию третьего знака препинания.
Задача 117
Отнимание от даты

Дана дата в формате '2025-12-31'. Отнимите от нее 3 дня и выведите ее в таком же формате.
Задача 118
Корректность скобок

Дана строка со скобками, например, такая: '((2 * 3) + 1)'. Проверьте корректность расстановки скобок: количество открывающий должно быть равно количеству закрывающих: '(2 + 3))' - некорретно, их порядок должен быть правильным: ')(2 + 3))' - некорретно.
Задача 119
Центральная цифра

Дано число с нечетным количеством цифр. Получите центральную цифру из этого числа.
Задача 120
Сменить регистр

Дана строка. Смените регистр всех букв в ней.
Задача 121
Последний сегмент пути к папке

Дан некоторый путь к папке '/aaa/bbb/ccc/'. Получите последний сегмент пути. В нашем случае это будет '/ccc/'.
Задача 122
Замена сегмента пути

Дан некоторый путь к папке '/aaa/bbb/ccc/'. Поменяйте заданный сегмент пути на новое значение. К примеру, поменяем второй сегмент пути: '/aaa/+++/ccc/'
Задача 123
Увеличение сегмента пути

Дан некоторый путь к папке, содержащий числа '/1/2/3/'. Увеличьте заданный сегмент пути на единицу. К примеру, увеличим второй сегмент пути: '/1/3/3/'
Задача 124
Получение имени файла

Дан некоторый путь, ведущий к папке '/aaa/bbb/ccc/' или к файлу '/aaa/bbb/ccc.html'. Получите из пути имя файла с его расширением, если это возможно.
Задача 125
Язык запроса

Пусть в первом сегменте адреса задается язык пользователя: '/ru/bbb/ccc/'. Напишите программу, которая получит этот язык.
Задача 126
Сортировка по количеству

Дан массив:
[
[1, 2, 3],
[1, 2],
[1, 2, 3, 4, 5],
[1],
[1, 2, 3, 4],
]

Отсортируйте элементы массива по возрастанию количества элементов в подмассиве.
Задача 127
Сортировка по сумме

Дан массив:
[
[2, 4, 5],
[1, 2, 3],
[0, 1, 1],
[5, 7, 1],
]

Отсортируйте элементы массива по возрастанию суммы элементов подмассива.
Задача 128
Пирамидка

Выведите на экран следующую пирамидку:
x
xx
xxx
xxxx
xxxxx
Задача 129
Слияние в числа

Дан массив, подмассивы которого содержат цифры:
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]

Слейте элементы этого массива в числа:
[123, 456, 789]
Задача 130
Двойная пирамидка

Выведите на экран следующую пирамидку:
xx
xxxx
xxxxxx
xxxxxxxx
xxxxxxxxxx