Versione più breve di Skyscrapers Challenge
Compito
Data una serie di altezze degli edifici e un numero intero positivo k
, trova tutte le permutazioni (senza duplicati) delle altezze in modo tale che siano esattamente k
visibili gli edifici.
Qualsiasi edificio nasconderà dietro di sé tutti gli edifici più corti o di uguale altezza.
Qualsiasi formato per input e output è valido.
L'array di input non sarà mai vuoto.
Nel caso in cui non sia possibile vedere esattamente altrettanti edifici, emettere tutto ciò che non può essere una risposta ma nessun errore.
Esempi:
(La lunghezza dell'output viene visualizzata per output molto lunghi, ma l'output dovrebbe essere tutte le possibili permutazioni)
input:[1,2,3,4,5],2
output: 50
input:[5,5,5,5,5,5,5,5],2
output: []
input:[1,2,2],2
output:[(1,2,2)]
Seeing from the left, exactly 2 buildings are visible.
input:[1,7,4],2
output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)]
input:[1,2,3,4,5,6,7,8,9],4
output:67284
input:[34,55,11,22],1
output:[(55, 34, 11, 22), (55, 22, 34, 11), (55, 34, 22, 11), (55, 11, 34, 22), (55, 22, 11, 34), (55, 11, 22, 34)]
input:[3,4,1,2,3],2
output:31
Questo è code-golf, quindi vince il codice più corto
Opzionale: se possibile, puoi aggiungere qualcosa di simile if length is greater than 20: print length else print answer
. Nel piè di pagina, non nel codice.
[1,2,3,4,5],5 -> [(1,2,3,4,5)]
. Nessuno degli attuali casi di test garantisce che le risposte possano supportare la visualizzazione di tutti gli edifici (anche se non so se qualcuno di questi abbia effettivamente un problema).