Ada banyak teka - teki dengan kecocokan yang melibatkan menambah, menghapus, atau memindahkan sejumlah kecocokan untuk membuat angka atau bentuk baru. Ini seperti itu dengan jam digital.
Diberi waktu yang valid pada jam digital 12 jam, mengeluarkan angka yang mengharuskan pemindahan garis paling sedikit untuk membuatnya sehingga setiap angka yang terlihat pada jam menjadi angka itu. Jika lebih dari satu digit adalah minimum, hasilkan semuanya. Jika tidak mungkin untuk membuat setiap digit sama, output -1
atau nilai falsy selain 0 (Anda akan mendapatkan banyak dari ini).
Digit jam terlihat seperti ini:
|
|
_
_|
|_
_
_|
_|
|_|
|
_
|_
_|
_
|_
|_|
_
|
|
_
|_|
|_|
_
|_|
_|
_
| |
|_|
Kasus uji:
Memasukkan: 123
Tampilan Jam:
_ _
| : _| _|
| : |_ _|
Keluaran: 4
Penjelasan: Tampilan untuk 1:23
membutuhkan total 12 garis harus ditarik. Oleh karena itu, agar setiap digit sama, setiap digit harus memiliki 4 baris. Satu-satunya digit yang memiliki 4 baris adalah 4
. Karena itu, jawabannya harus 4
.
Memasukkan: 1212
Tampilan Jam:
_ _
| _| : | _|
| |_ : | |_
Keluaran: -1
Penjelasan: Tampilan untuk 12:12
membutuhkan 14 baris. 14 dibagi 4 bukanlah bilangan bulat, oleh karena itu tidak mungkin setiap digit sama.
Memasukkan: 654
Tampilan Jam:
_ _
|_ : |_ |_|
|_| : _| |
Keluaran: 5
Penjelasan: Jumlah total baris adalah 15. 15 dibagi 3 adalah 5, sehingga setiap digit harus memiliki 5 baris. Satu-satunya angka yang memiliki 5 garis 2
, 3
dan 5
. Jawabannya adalah 5
karena hanya membutuhkan 2 gerakan untuk membuat setiap digit 5. Cukup pindahkan garis di kiri bawah 6 ke bawah 4, maka Anda harus:
_ _
|_ : |_ |_|
_| : _| _|
Kemudian, seperti yang Anda lihat, yang perlu Anda lakukan adalah memindahkan garis di kanan atas digit yang semula 4 ke atas, dan Anda dapatkan 5:55
. Untuk membuat setiap digit a 2
atau 3
membutuhkan lebih dari 2 gerakan.
Memasukkan: 609
Tampilan Jam:
_ _ _
|_ : | | |_|
|_| : |_| _|
Output: 609
( 6,0,9
atau [6,0,9]
juga ok).
Penjelasan: 6
,, 0
dan 9
satu-satunya digit yang memiliki 6 garis. Karena itu, mereka juga satu-satunya solusi yang mungkin. Tidak sulit untuk melihat bahwa perlu dua langkah untuk menjadikan semua ini satu-satunya digit. Karena itu, Anda mengeluarkan ketiga digit tersebut.
Catatan:
- Meskipun waktu input harus valid, waktu output tidak (mis.
999
Sebagai output OK.) - Saya sangat fleksibel dengan input. Anda dapat meminta angka 0. Anda dapat menggunakan angka dengan titik desimal. Anda bisa menggunakan string. Anda bisa menggunakan array. Anda dapat memiliki parameter untuk setiap digit.