Существует множество головоломок со спичками, которые включают добавление, удаление или перемещение определенного количества спичек для создания новых чисел или фигур. Это похоже на цифровые часы.
Если на 12-часовых цифровых часах установлено правильное время, выведите цифру, для которой необходимо переместить наименьшее количество строк, чтобы каждая видимая цифра на часах стала этой цифрой. Если минимум несколько цифр, выведите их все. Если невозможно сделать каждую цифру одинаковой, выходной -1
или ложное значение, отличное от 0 (вы получите много из них).
Цифры часов выглядят так:
|
|
_
_|
|_
_
_|
_|
|_|
|
_
|_
_|
_
|_
|_|
_
|
|
_
|_|
|_|
_
|_|
_|
_
| |
|_|
Тестовые случаи:
Входные данные: 123
Дисплей часов:
_ _
| : _| _|
| : |_ _|
Вывод: 4
Пояснение: для отображения 1:23
требуется нарисовать всего 12 линий. Поэтому, чтобы каждая цифра была одинаковой, каждая цифра должна иметь 4 строки. Единственная цифра, которая имеет 4 строки 4
. Поэтому ответ должен быть 4
.
Входные данные: 1212
Дисплей часов:
_ _
| _| : | _|
| |_ : | |_
Вывод: -1
Пояснение: для отображения 12:12
требуется 14 строк. 14, деленное на 4, не является целым числом, поэтому невозможно, чтобы каждая цифра была одинаковой.
Входные данные: 654
Дисплей часов:
_ _
|_ : |_ |_|
|_| : _| |
Вывод: 5
Объяснение: Общее количество строк равно 15. 15, разделенное на 3, равно 5, поэтому каждая цифра должна иметь 5 строк. Единственные цифры , которые имеют 5 линий 2
, 3
и 5
. Ответ заключается в том, 5
что для создания каждой цифры 5 требуется всего 2 хода. Просто переместите строку в нижнем левом углу 6 на нижнюю часть 4, тогда вы получите:
_ _
|_ : |_ |_|
_| : _| _|
Затем, как вы можете видеть, все, что вам нужно сделать, это переместить строку в верхнем правом углу цифры, которая изначально была 4 наверх, и вы получите 5:55
. Чтобы сделать каждую цифру a 2
или 3
потребуется более 2 ходов.
Входные данные: 609
Дисплей часов:
_ _ _
|_ : | | |_|
|_| : |_| _|
Вывод: 609
( 6,0,9
или [6,0,9]
тоже нормально).
Объяснение: 6
, 0
и 9
единственные цифры , которые имеют 6 строк. Как таковые, они также являются единственно возможными решениями. Нетрудно понять, что потребуется всего два хода, чтобы сделать из них единственную цифру. Поэтому вы выводите все три цифры.
Ноты:
- Хотя время ввода должно быть действительным, время вывода - нет (например,
999
в качестве выхода все в порядке.) - Я очень гибок с вводом. Вам может потребоваться ведущий 0. Вы можете использовать число с десятичной точкой. Вы можете использовать строку. Вы можете использовать массив. Вы можете иметь параметр для каждой цифры.