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: 136oppure 1010010oppure0100101
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 1come input, l'output sarebbe 1000000000o 0000000001.
Alcune combinazioni hanno diverse soluzioni non ripetitive, ad es. i segmenti corrispondenti alla lettera maiuscola Hpossono essere disattivati da 013, ma anche 489e 0258.
Se non esiste alcuna soluzione (che credo non sia possibile), l'output è vuoto.
301per H).
17, 08e 1479. Le soluzioni per i segmenti verticali superiori, da sinistra a destra, sono 39e 59. Le soluzioni per i segmenti verticali inferiori, da sinistra a destra, sono 56e 2389.
2non è sempre necessario, perché puoi sostituirlo con uno 0468, 1358o 1369, a seconda che tu voglia un 0, 8o 9nella tua risposta, ma non c'è modo di eliminarlo 7affatto e penso che tu debba averne almeno uno di 1e 3.