Dato un display a 7 segmenti con alcuni segmenti accesi e alcuni spenti, trova una sequenza di cifre (0-9), in modo tale che dopo aver attivato i segmenti corrispondenti per ogni cifra, tutti i segmenti vengono disattivati.
Esempio
_
_ [3] => | [1] => [OFF]
_ |
Numeri e segmenti corrispondenti:
_ _ _ _ _ _ _ _
| | | _| _| |_| |_ |_ | |_| |_|
|_| | |_ _| | _| |_| | |_| _|
Regole
Codegolf wins vince l'ingresso più breve.
Ingresso
Un elenco non vuoto di segmenti attivati, indicato come
Una sequenza di numeri. I segmenti sono numerati dall'alto verso il basso, da sinistra a destra; a partire da 0 o 1. I numeri non devono essere in ordine.
Una singola cifra di 7 bit. MSB / LSB non specificato (quindi è possibile scegliere).
Sono consentiti caratteri non numerici tra i numeri (ma non è necessario che siano supportati).
Per esempio. per numero 7
: 136
oppure 1010010
oppure0100101
Produzione
Una sequenza di numeri da "applicare" al display. Non limitato in alcun modo, ad esempio l'ordine delle cifre. Per esempio. per stato iniziale corrispondente al numero 1
, uscite validi sarebbe 1
, 111
, 010
, etc.
Un'uscita alternativa è una cifra di 10 bit (di nuovo, MSB / LSB è la tua scelta). Per esempio. per 1
come input, l'output sarebbe 1000000000
o 0000000001
.
Alcune combinazioni hanno diverse soluzioni non ripetitive, ad es. i segmenti corrispondenti alla lettera maiuscola H
possono essere disattivati da 013
, ma anche 489
e 0258
.
Se non esiste alcuna soluzione (che credo non sia possibile), l'output è vuoto.
301
per H
).
17
, 08
e 1479
. Le soluzioni per i segmenti verticali superiori, da sinistra a destra, sono 39
e 59
. Le soluzioni per i segmenti verticali inferiori, da sinistra a destra, sono 56
e 2389
.
2
non è sempre necessario, perché puoi sostituirlo con uno 0468
, 1358
o 1369
, a seconda che tu voglia un 0
, 8
o 9
nella tua risposta, ma non c'è modo di eliminarlo 7
affatto e penso che tu debba averne almeno uno di 1
e 3
.