Certo, la rete SE è molto ben informata su come essere rispettosi nel bagno, ma per quelli di voi che hanno bisogno di un riassunto, essere rispettosi significa sciacquare il gabinetto, ecc. Ancora più importante, tuttavia, significa usare la stalla lontano dagli altri possibile.
La sfida
Dato un progetto di una serie di bancarelle con le indicazioni di quali sono in uso come stringa, è necessario tornare o stampare da una funzione o un programma in cui si trova il luogo più rispettoso per fare affari.
L'input
0 1 2 3 4 5 <- The stall number which is not actually visible in the input.
| | |-| |-|-| <- the stalls
Le bancarelle sono numerate in ordine crescente da sinistra a destra. Ci sarà sempre almeno una bancarella vuota. In un ingresso possono essere presenti fino a 50 bancarelle. Si può anche prendere l'input come una matrice o una stringa di 0
s e 1
s o booleani, se si preferisce farlo.
Le bancarelle in uso hanno -
al loro interno (tra i tubi).
L'output
La bancarella più rispettosa a cui andare è quella che è in media la più lontana da quelle in uso. La distanza tra due bancarelle è il valore assoluto della differenza dei numeri sopra di essi.
Giusto per essere chiari: stai trovando la distanza media da tutte le bancarelle, non solo da quelle vicine.
È necessario emettere il numero più basso dello stallo più rispettoso per passare a quello vuoto .
Esempi
Input:
|-| |-| OR 101
Output:
1
Input:
| | |-| |-|-| OR 001011
Output:
0
Input:
|-| |-| | | | |-|-| OR 101000011
Output:
1
Input:
|-| | | | | |-|-| | | | | OR 100000110000
Output:
11
Input:
|-|-|-|-| | | | | | |-| OR 11110000001
Output:
9
Input:
|-| | OR 10
Output:
1
Input:
|-| | |-| OR 1001
Output:
1
Questo è code-golf , quindi vince il codice più breve in byte!
Puoi utilizzare l'indicizzazione basata su 0 o 1 nella tua risposta, a seconda di quale preferisci; se usi l'indicizzazione basata su 1, devi dirlo esplicitamente nella tua risposta.
[1,0,0,1]
come test case. Nessuno dei casi di test attuali verifica se i legami sono rotti correttamente.
101000011
restituisce 1 (anziché 4 o 5)?