Сложность: easy
Бинарные часы имеют 4 светодиода сверху для представления часов (0-11) и 6 светодиодов снизу для представления минут (0-59). Каждый светодиод представляет ноль или единицу, при этом младший разряд находится справа.
Пример:
Input: turnedOn = 1
Output: ["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]
👨💻 Алгоритм:
1⃣Генерация всех возможных комбинаций:
Переберите все возможные значения для часов и минут.
Используйте битовые операции для подсчета количества единиц в бинарном представлении числа.
2⃣Проверка количества горящих светодиодов:
Для каждой комбинации проверьте, соответствует ли сумма единиц в бинарном представлении часов и минут заданному количеству горящих светодиодов.
3⃣Форматирование результата:
Если комбинация часов и минут соответствует условию, отформатируйте их в виде строки "часы:минуты" и добавьте в список результатов.
😎 Решение:
class Solution {
function readBinaryWatch($turnedOn) {
$results = [];
for ($h = 0; $h < 12; $h++) {
for ($m = 0; $m < 60; $m++) {
if (substr_count(decbin($h), '1') + substr_count(decbin($m), '1') == $turnedOn) {
$results[] = sprintf("%d:%02d", $h, $m);
}
}
}
return $results;
}
}Ставь 👍 и забирай 📚 Базу знаний
