Tiempo para otra práctica de Pyth. Presento aquí 8 declaraciones de problemas con una solución Pyth cada una. Estas soluciones están escritas por un principiante Pyth. Está bastante contento con estas soluciones, ya que son mucho más cortas que sus respuestas de Python. Sin embargo, su tarea es mostrarle mejor. Crea programas equivalentes pero más cortos.
Este es un desafío sobre los trucos y optimizaciones que se pueden usar al jugar golf en Pyth. Los golfistas Pyth pueden reconocer muchos de los trucos involucrados, que conducen a soluciones más cortas. Sin embargo, algunos problemas requerirán algunos enfoques inusuales que rara vez se usan. Algunos de los trucos que nunca he visto en la naturaleza. Pero ninguna solución requiere ningún error o comportamiento extraño, que no haya sido intencionado por el diseñador o diseñadores de Pyth. Todas las respuestas deben ser válidas para la confirmación Pyth más reciente ( 2b1562b ) a partir de la publicación de esta pregunta. Puedes usar el intérprete Pythpara las pruebas. Está actualizado en este momento y no espero grandes cambios en Pyth, que invalidarán las soluciones óptimas o harán posibles soluciones más cortas. El intérprete en línea también presenta la nueva referencia de personaje. Como es bastante nuevo, también puede (debería) usar los documentos antiguos , en caso de que algo sea incorrecto o falte.
Objetivo: las soluciones de referencia totalizan 81 bytes. Tu objetivo es superar eso lo más posible. El envío que resuelve los 8 problemas con el menor número total de bytes gana. Tiebreaker es la fecha de presentación.
Por supuesto, solo los envíos son válidos, que contienen soluciones para los 8 problemas. Puede usar la implementación de referencia, si no puede mejorar la puntuación de uno (o más) problema particular.
Sus soluciones deben imprimir exactamente el mismo resultado que las soluciones de referencia. Excepto por una nueva línea final opcional.
Como esta es una práctica de Pyth, solo se permiten los programas escritos en el lenguaje Pyth.
Respuesta: Por favor, estropee toda su respuesta, excepto su puntaje total. Se pretende que no mire las respuestas de otras personas antes de enviar las suyas. Puedes crear spoilers poniendo>! delante de cada línea, como:
>! Problem 1: V9m?>dNd0S9 (11 bytes)
>! Problem 2: VTN)VGN (7 bytes)
>! ...
Espero no haber elegido problemas demasiado difíciles o demasiado triviales. Con la esperanza de que muchos participantes y todos obtengan algunas nuevas ideas sobre Pyth. ¡Feliz golf!
Problema 1:
Cree la siguiente matriz de 9x9 e imprímala:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 3, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 4, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 5, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 6, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 7, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 8, 9]
[0, 0, 0, 0, 0, 0, 0, 0, 9]
Solución de referencia ( Enlace ):
V9m?>dNd0S9 (11 bytes)
Problema 2:
Imprima todos los dígitos y todas las letras en líneas separadas:
0
...
9
a
...
z
Solución de referencia ( Enlace ):
VTN)VGN (7 bytes)
Problema 3:
Encuentre el palíndromo más pequeño lexicográficamente, que es lexicográficamente más grande o igual que una cadena de entrada que contiene letras minúsculas y es igual a la cadena de entrada.
a -> a
abc -> aca
adcb -> adda
Solución de referencia ( Enlace ):
hf&gTzqT_T^Glz (14 bytes)
Problema 4:
Compruebe, si un número está en el rango [0, número de entrada). Esto también debería funcionar para flotadores.
4, 6 -> True
5.5, 6 -> True
6, 6 -> False
6, 6.1 -> True
Solución de referencia ( Enlace ):
&gQ0<QE (7 bytes)
El formato de referencia es to be tested value<newline>end value
. Sin embargo, puede elegir un formato de entrada diferente. Lo importante es que cumpla con el enunciado del problema y produzca los resultados correctos.
Problema 5:
Analiza una cadena de entrada con el formato "\ d + [a-zA-Z] +". Tenga en cuenta que el número realmente tiene que ser un número, no una cadena que contenga dígitos.
'123Test' -> [123, 'Test']
Solución de referencia ( Enlace ):
A.ggk\Az,sGH (12 bytes)
Problema 6:
Calcule la suma de números, que están separados por una o varias comas. Puede suponer que hay al menos un número en la cadena.
11,2,,,3,5,,8 -> 29
Solución de referencia ( Enlace ):
svM:z",+"3 (10 bytes)
Problema 7:
Lea enteros positivos de la entrada hasta que obtenga el número 0. Imprima la suma de todos los números.
Solución de referencia ( Enlace ):
WJE=+ZJ)Z (9 bytes)
Problema 8:
Resuma todos los elementos de una matriz cuadrada, excepto los de la diagonal principal (esquina superior izquierda a esquina inferior derecha).
Solución de referencia ( Enlace ):
-ssQs.e@bkQ (11 bytes)
Respuestas:
595856 bytesProblema 1:
Problema 2:
Problema 3:
Problema 4:
Problema 5:
Problema 6:
Problema 7:
Problema 8:
fuente
66 bytes
fuente
68676665 bytesTarea 1
Tarea 2
Tarea 3
Tarea 4
Tarea 5
Tarea 6
Tarea 7
Tarea 8
fuente
54 bytes
Aquí están las soluciones previstas. A excepción de la tarea 8, se encontraron todas las soluciones.
fuente
U
lo hizol
en las listas!60 5957 bytesTenga en cuenta que desarrollé estas soluciones de forma completamente independiente de otras respuestas, aunque llego bastante tarde a la fiesta.
fuente