Detectar preguntas duplicadas
Érase una vez, había un sitio de golf. Tenía un problema: la gente publicaba preguntas similares o idénticas una y otra vez. Usted ha sidoelegido seleccionado forzado reclutado chantajeado solicitó automatizar el proceso de decidir si una pregunta es un duplicado de una existente, por cualquier medio necesario (ver Reglas).
Entrada
Su programa debe aceptar una sola URL como entrada. Se puede suponer que esto lleva a una pregunta en codegolf.stackexchange.com .
Salida
Busque en el sitio preguntas similares. Si cree que la pregunta de entrada es un duplicado de una pregunta existente (o viceversa), envíe la URL de la otra pregunta. Puede generar varias URL, separadas por nuevas líneas. Al final de su salida, salida end
(en una línea separada).
Puntuación
- Si una pregunta que emitió se marcó como un duplicado de la pregunta de entrada (o viceversa), obtendrá 4 puntos. Esta es una "suposición correcta".
- Por cada falso positivo (también conocido como "conjetura incorrecta"), pierde 2 puntos.
- Por cada pregunta que en realidad era un duplicado pero que no aparece en su salida (también conocida como "conjetura faltante"), pierda 1 punto.
El puntaje más alto después de manejar 32 preguntas de entrada gana. Estas 32 preguntas son una "ronda". Al comienzo de cada ronda, los puntajes se restablecerán a 0. Se ejecutará una ronda cada pocos días y la tabla de clasificación se actualizará después de cada ronda.
Reglas
- Si las preguntas A y C están cerradas como duplicados de B, A contará como un duplicado de C y viceversa.
- Al comienzo de cada ronda, es posible que su programa no posea ningún dato sobre ninguna pregunta (es decir, sin codificación fija ), excepto sobre cómo analizar el sitio web.
- Sin embargo, puede mantener datos en archivos externos durante una ronda.
- No se pueden guardar datos entre rondas.
- Su salida debe tener una nueva línea final.
- No puede utilizar ningún dato del sitio web, excepto los resultados de búsqueda y la URL, el título, las etiquetas y el texto de una pregunta , con o sin formato. Por ejemplo, no puede usar el texto "marcado como duplicado por foo, bar ..." que aparece en las preguntas duplicadas.
- Puede recuperar estos datos directamente desde el sitio, a través de data.SE o a través de la API.
- Cada envío debe tener un nombre.
- Cada envío debe tener una numeración clara de la versión.
- Si un envío no produce resultados después de un límite de tiempo (por decidir; indique cuánto tiempo tarda su envío), se eliminará y perderá 8 puntos.
Respuestas:
Python 3
Le estoy dando a esta entrada el nombre
The Differ
.Código:
El filtro
"!-*f(6rc.cI8O"
incluía eltotal
parámetro en el objeto contenedor global y elbody
parámetro en las preguntas.Esta entrada realiza dos solicitudes de API más una por etiqueta en la pregunta más una por cien preguntas en su etiqueta menos utilizada. Si golpea un acelerador API (que no comprueba), elevará un
urllib.error.HTTPError: HTTP Error 400: Bad Request
fuente