Wykryj duplikaty pytań
Dawno, dawno temu istniało pole golfowe. Miał problem: ludzie wielokrotnie zadawali podobne lub identyczne pytania. Ty byłeśwybrani wybrani przymusowo pobrani do szantażu zażądano zautomatyzowania procesu decydowania, czy pytanie jest duplikatem istniejącego, za pomocą wszelkich niezbędnych środków (patrz Reguły).
Wejście
Twój program musi zaakceptować pojedynczy adres URL jako dane wejściowe. Można założyć, że prowadzi to do pytania na codegolf.stackexchange.com .
Wynik
Wyszukaj w witrynie podobne pytania. Jeśli uważasz, że pytanie wejściowe jest duplikatem istniejącego pytania (lub odwrotnie), wypisz adres URL drugiego pytania. Możesz generować wiele adresów URL oddzielonych nowymi wierszami. Na końcu danych wyjściowych dane wyjściowe end
(w osobnym wierszu).
Punktacja
- Jeśli zadane przez Ciebie pytanie rzeczywiście zostało oznaczone jako duplikat pytania wejściowego (lub odwrotnie), zdobywasz 4 punkty. To jest „prawidłowe odgadnięcie”.
- Za każde fałszywie pozytywne (inaczej „niepoprawne zgadywanie”) tracisz 2 punkty.
- Za każde pytanie, które faktycznie było duplikatem, ale nie pojawia się w twoich wynikach (inaczej „brak zgadywania”), strac 1 punkt.
Najwyższy wynik po rozpatrzeniu 32 pytań wejściowych wygrywa. Te 32 pytania są „okrągłe”. Na początku każdej rundy wyniki zostaną zresetowane do 0. Jedna runda będzie przeprowadzana co kilka dni, a tabela liderów będzie aktualizowana po każdej rundzie.
Zasady
- Jeśli pytania A i C zostaną zamknięte jako duplikaty B, A będzie się liczyć jako duplikat C i odwrotnie.
- Na początku każdej rundy twój program może nie posiadać żadnych danych na temat jakichkolwiek pytań (tj. Bez kodowania na stałe ), z wyjątkiem tego, jak parsować witrynę.
- Możesz jednak przechowywać dane w plikach zewnętrznych podczas rundy.
- Żadne dane nie mogą być przechowywane między rundami.
- Twój wynik musi mieć końcowy nowy wiersz.
- Nie możesz używać żadnych danych ze strony internetowej, z wyjątkiem wyników wyszukiwania oraz adresu URL, tytułu, tagów i tekstu pytania , z formatowaniem lub bez. Na przykład nie możesz używać tekstu „oznaczonego jako duplikat przez foo, bar ...”, który pojawia się na zduplikowanych pytaniach.
- Możesz pobrać te dane bezpośrednio z witryny, za pośrednictwem data.SE lub interfejsu API.
- Każde zgłoszenie musi mieć nazwę.
- Każde zgłoszenie musi mieć czytelną numerację wersji.
- Jeśli zgłoszenie nie przyniesie rezultatu po upływie określonego czasu (do ustalenia; proszę określić, jak długo trwa zgłoszenie), zostanie zabite i straci 8 punktów.
Odpowiedzi:
Python 3
Nadaję temu wpisowi nazwę
The Differ
.Kod:
Filtr
"!-*f(6rc.cI8O"
zawierałtotal
parametr globalnego obiektu opakowania ibody
parametr na pytania.Ten wpis powoduje, że dwa żądania API plus jeden na tag w pytaniu plus jeden na sto pytań w jego najmniej używanym tagu. Jeśli uderzy w przepustnicę API (której nie sprawdza), podniesie
urllib.error.HTTPError: HTTP Error 400: Bad Request
źródło