Doppelte Fragen erkennen
Es war einmal eine Golfanlage. Es gab ein Problem: Leute stellten immer wieder ähnliche oder identische Fragen. Du bist gewesenAuserwählte Auserwählte Zwangsverpflichtete erpresst aufgefordert, den Prozess der Entscheidung zu automatisieren, ob eine Frage ein Duplikat einer vorhandenen Frage ist, und zwar auf jede Art und Weise, die erforderlich ist (siehe Regeln).
Eingang
Ihr Programm muss eine einzelne URL als Eingabe akzeptieren. Es kann davon ausgegangen werden, dass dies zu einer Frage auf codegolf.stackexchange.com führt .
Ausgabe
Suchen Sie auf der Website nach ähnlichen Fragen. Wenn Sie der Meinung sind, dass die eingegebene Frage ein Duplikat einer vorhandenen Frage ist (oder umgekehrt), geben Sie die URL der anderen Frage aus. Sie können mehrere URLs ausgeben, die durch neue Zeilen getrennt sind. Am Ende Ihrer Ausgabe geben Sie end
(in einer separaten Zeile) aus.
Wertung
- Wenn eine von Ihnen ausgegebene Frage tatsächlich als Duplikat der eingegebenen Frage markiert wurde (oder umgekehrt), erhalten Sie 4 Punkte. Dies ist eine "richtige Vermutung".
- Für jedes falsch positive Ergebnis (auch "falsche Vermutung" genannt) verlieren Sie 2 Punkte.
- Verlieren Sie für jede Frage, die tatsächlich ein Duplikat war, aber nicht in Ihrer Ausgabe enthalten ist (auch bekannt als "fehlende Vermutung"), 1 Punkt.
Die höchste Punktzahl nach der Behandlung von 32 Eingabefragen gewinnt. Diese 32 Fragen sind eine "Runde". Zu Beginn jeder Runde werden die Punktzahlen auf 0 zurückgesetzt. Alle paar Tage wird eine Runde ausgeführt und die Rangliste nach jeder Runde aktualisiert.
Regeln
- Wenn die Fragen A und C beide als Duplikate von B geschlossen sind, zählt A als Duplikat von C und umgekehrt.
- Zu Beginn jeder Runde enthält Ihr Programm möglicherweise keine Daten zu Fragen (dh keine Hardcodierung ), es sei denn, Sie möchten wissen , wie die Website analysiert wird.
- Sie können jedoch während einer Runde Daten in externen Dateien aufbewahren.
- Zwischen den Runden dürfen keine Daten gespeichert werden.
- Ihre Ausgabe muss eine nachgestellte neue Zeile haben.
- Sie dürfen keine Daten von der Website außer den Suchergebnissen und der URL, dem Titel, den Tags und dem Text einer Frage mit oder ohne Formatierung verwenden. Beispielsweise dürfen Sie nicht den Text "als Duplikat von foo, bar ... markiert" verwenden, der auf doppelten Fragen erscheint.
- Sie können diese Daten direkt von der Site über data.SE oder über die API abrufen.
- Jede Einreichung muss einen Namen haben.
- Jede Einreichung muss eine eindeutige Versionsnummer haben.
- Wenn eine Einreichung nach Ablauf einer festzulegenden Frist keine Ausgabe liefert (bitte geben Sie an, wie lange Ihre Einreichung dauert), wird sie abgebrochen und verliert 8 Punkte.
Antworten:
Python 3
Ich gebe diesem Eintrag den Namen
The Differ
.Code:
Der Filter
"!-*f(6rc.cI8O"
enthielt dentotal
Parameter für das globale Wrapper-Objekt und denbody
Parameter für Fragen.Mit diesem Eintrag werden zwei API-Anforderungen plus eine pro Tag für die Frage plus eine pro hundert Fragen in dem am wenigsten verwendeten Tag erstellt. Wenn es eine Api-Drossel trifft (auf die es nicht prüft), wird ein erhöht
urllib.error.HTTPError: HTTP Error 400: Bad Request
quelle