Kürzere Version von Skyscrapers Challenge
Aufgabe
Suchen Sie bei einer Reihe von Gebäudehöhen und einer positiven Ganzzahl k
alle Permutationen (ohne Duplikate) der Höhen so, dass genau k
Gebäude sichtbar sind.
Jedes Gebäude wird alle kürzeren oder gleich hohen Gebäude dahinter verstecken.
Jedes Format für Ein- und Ausgabe ist gültig.
Das Eingabearray wird niemals leer sein.
Falls es nicht möglich ist, genau so viele Gebäude zu sehen, geben Sie alles aus, was keine Antwort, aber keinen Fehler darstellen kann.
Beispiele:
(Die Länge der Ausgabe wird für sehr lange Ausgaben angezeigt, Ihre Ausgabe sollte jedoch alle möglichen Permutationen enthalten.)
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
Das ist Code-Golf, also gewinnt der kürzeste Code
Optional: Wenn möglich, können Sie so etwas hinzufügen if length is greater than 20: print length else print answer
. In der Fußzeile, nicht im Code.
[1,2,3,4,5],5 -> [(1,2,3,4,5)]
. Keiner der aktuellen Testfälle stellt sicher, dass Antworten das Anzeigen aller Gebäude unterstützen (obwohl ich nicht weiß, ob tatsächlich ein Problem damit vorliegt).