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

Дано время в формате часы:секунды. Проверьте то, что время является корректным: часы от 00 до 23, а минуты от 00 до 59.
Задача 16
Счастливые билеты

Выведите на экран все счастливые билеты. Счастливый билет - это когда сумма первых трех цифр в номере билета равна сумме второй тройки цифр (номер шестизначный). Подсчитайте сколько счастливых билетов существует и какой % они составляют от общего числа билетов.
Задача 17
Половина заглавных букв

Дана строка с маленькими буквами. Сделайте заглавными половину случайных букв этой строки, игнорируя пробелы.
Задача 18
Следующий элемент ряда

Дан ряд: a, b, c ,d ... x, y, z , aa, ab, ac, ... ay, az, ba, bb, ... bz, ... aaz.. Напишите функцию, которая получит следующий элемент по предыдущему.
Задача 19
N-ный знак после запятой

Поделите число 10 на число 7. Найдите 1000-ный знак после запятой у полученной дроби.
Задача 20
Перестановка пар символов

Дана строка '12345678'. Сделайте из нее '21436587'. Строка, конечно же, может быть любой.
Занимательные задачи уходят на каникулы на две недели:)
Всем хорошего нового года!
Задача 21
Самое популярное слово

Дан текст. Найдите самое часто встречающееся слово в этом тексте.
Задача 22
Число прописью

Дано некоторое число:
$num = 1234567890;

Выведите это число прописью:
'
один миллиард двести тридцать четыре миллиона
пятьсот шестьдесят семь тысяч восемсот девяносто
'

Ваш код, конечно же, должен быть универсальным и работать для любых чисел в пределах миллиардов.
Задача 23
Группировка массива по первым буквам

Дан произвольный массив со словами, начинающимися на различные буквы, например, вот такой:
$arr = [
'axx', 'bxx', 'cxx',
'ayy', 'byy', 'cyy',
'azz', 'bzz', 'czz',
];

Преобразуйте этот массив в двухмерный, в котором ключами будут первые буквы слов, а значениями массивы слов, начинающихся на эти буквы:
[
'a' => [
'axx', 'ayy', 'azz',
],
'b' => [
'bxx', 'byy', 'bzz',
],
'c' => [
'cxx', 'cyy', 'czz',
],
]
Задача 24
Сортировка двухмерного массива

Дан двухмерный массив:
[
[
'name' => 'user3',
'age' => 31,
'salary' => 100,
],
[
'name' => 'user1',
'age' => 32,
'salary' => 300,
],
[
'name' => 'user2',
'age' => 33,
'salary' => 200,
],
]

Выполните сортировку этого массива по заданному полю (по имени, возрасту или зарплате).
Задача 25
Заданный знак числа Пи

Сделайте функцию, которая будет возвращать заданный знак числа Пи (например, тысячный знак). Номер знака передается параметром функции.
Задача 26
Число из прописи

Дано некоторое число прописью:
$str = '
один миллиард двести тридцать четыре миллиона
пятьсот шестьдесят семь тысяч восемсот девяносто
';

Преобразуйте эту пропись в нормальное число:
1234567890

Ваш код, конечно же, должен быть универсальным и работать для любых чисел в пределах миллиардов.
Задача 27
Удаление уникальных элементов массива

Дан массив. Удалите из него все элементы, которые встречаются только один раз.
Задача 28
Смена оттенка цвета

Сделайте функцию, которая будет принимать цвет в hex формате и делать его более темного оттенка.
Задача 29
Удаление лишних слов

Дан текст. Найдите все места с двумя одинаковыми словами подряд и удалите лишние слова.
Задача 30
Разница между датами

Даны две даты в формате год-месяц-день. Найдите разницу в днях между этими датами.
Задача 31
Слова с одинаковыми буквами подряд

Дан текст. Получите массив слов, у которых есть две одинаковые буквы подряд.
Задача 32
Получение элементов многомерного массива

Дан многомерный массив произвольного уровня вложенности:
<?php
$arr = [
'a' => [
'b' => [
'c' => '+++'
]
]
];
?>

Сделайте функцию, с помощью которой можно будет получить значения элемента с любого уровня вложенности, указав ключи последовательно через точку:
$res = func('a.b.c', $arr);
var_dump($res); // '+++'
Задача 33
Ближайшие вторники

Выведите даты ближайших 10-ти вторников.
Задача 34
Слова с одинаковыми буквами

Дан текст. Получите массив слов, у которых есть одинаковые буквы.