Dies ist eine Herausforderung in Bezug auf die Tricks und Optimierungen, die beim Golfen in Pyth verwendet werden können. Pyth-Golfer erkennen möglicherweise viele der Tricks. Es können jedoch ungewohnte Ansätze und Konstrukte beteiligt sein. Sehen Sie sich daher die Pyth-Tipps sowie die Pyth-Zeichenreferenz an, wenn Sie nicht weiterkommen . Hier können Lösungen getestet werden .
Ziel: Es gibt 8 Probleme mit jeweils einem Pyth-Snippet, das Sie optimieren können. Ihr Ziel ist es, etwas Äquivalentes, aber Kürzeres zu schaffen. Die Referenzlösungen umfassen insgesamt 80 Bytes. Ihr Ziel ist es, das so weit wie möglich zu übertreffen.
Der Gewinner geht zu der Einreichung, die alle 8 Probleme mit der kleinsten Gesamtzahl von Bytes löst. Tiebreaker ist früherer Beitrag.
Antwort : Bitte verderben Sie Ihre gesamte Antwort mit Ausnahme Ihrer Gesamtpunktzahl. Es ist beabsichtigt, dass Sie sich die Antworten anderer nicht ansehen, bevor Sie Ihre eigenen einreichen.
Jede Übermittlung sollte jedes Problem beantworten und die entsprechende Byteanzahl angeben. Sie können jedoch auch die Referenzimplementierung verwenden, wenn Sie sie nicht verbessern können.
Details: Wenn die Frage einen bestimmten Wert oder eine bestimmte Ausgabe q
erfordert, ist Gleichheit erwünscht 1
und !0
gleichwertig. Wenn in der Frage geprüft werden muss, ob eine Bedingung wahr ist, muss die Ausgabe wahr sein, wenn die Bedingung wahr ist, und falsch, wenn die Bedingung falsch ist, aber darüber hinaus nicht eingeschränkt sein. Sie dürfen nicht wahr gegen falsch und falsch gegen wahr tauschen. Wenn die Frage das Drucken von etwas erfordert, darf nur eine nachfolgende neue Zeile gedruckt werden.
Alle Antworten müssen für das letzte Pyth-Commit zum Zeitpunkt der Veröffentlichung dieser Frage gültig sein .
Problem 1: Geben Sie bei einer Menge in Q eine Liste mit den Elementen von Q in beliebiger Reihenfolge aus.
; 3 bytes
f1Q
Problem 2: Geben Sie die Liste aus [1, 1, 0, 0, 1, 1, 0]
.
; 9 bytes
[J1JZZJJZ
Problem 3: Testen Sie bei einer positiven Ganzzahl in Q, ob alle Ziffern von Q positiv sind (nicht Null).
; 7 bytes
!f!TjQT
Problem 4: Testen Sie anhand einer Zeichenfolge in z, ob z Anführungszeichen enthält - "
oder '
.
; 9 bytes
|}\'z}\"z
Problem 5: Ordnen Sie Q = 1 'Win', Q = 0 'Tie' und Q = -1 'Lose' zu.
; 20 bytes
@["Tie""Win""Lose")Q
Problem 6: Drucken 0123456789
.
; 6 bytes
sm`dUT
Problem 7: Zählen Sie bei einer Zeichenfolge in z die Anzahl der Inversionen.
(Indiziert i
und j
bildet eine Inversion, wenn i < j
aber z[i] > z[j]
).
; 17 bytes
ssmm>@zd@zkrdlzUz
Problem 8: Zählen Sie bei einer Liste in z die Anzahl der wiederholten benachbarten Elemente.
; 9 bytes
lfqFT.:z2
f1Q
filtertQ
nach einer Funktion, die immer wahr ist, sodass immer jedes Element der Menge ausgegeben wird.f
gibt eine Liste aus, die das Ziel in dieser Frage erfüllt.Antworten:
52 Bytes
quelle
54 Bytes
quelle
""
False ist, weilnot ""
True ist.58 Bytes
quelle
V
(obwohl ich es immer noch nicht vollständig verstehe, da Sie Vektoroperationen mit Operanden ungleicher Länge ausführen), also bin ich dafür entschuldigt, aber ich hätte wirklich anC\f
= /V
automatisch ungleiche Eingaben abDieser Beitrag dient der Ansammlung der besten Lösungen für alle Antworten. Bitte bearbeiten Sie die Lösung und den Antwortenden, der diese Lösung zuerst gefunden hat, falls es Verbesserungen gibt.
48 Bytes
quelle
57 Bytes
quelle
te\\st
falsch positiv.