Nota para los moderadores y editores : el título de esta publicación es válido y no debe modificarse. La falta de ortografía es intencional y parte del desafío.
Trasfondo
La típica (SO) mala pregunta de SO hace algo parecido a "¡por favor envía el codez!" En otras palabras, le pide a alguien que haga el trabajo para el autor de la pregunta y brinde una solución completa a un problema único. Cito esta pregunta en Meta.SE :
... se trata de una categoría específica de preguntas que consisten en absolutamente ninguna investigación, ningún esfuerzo, y simplemente piden la solución completa a un problema. Este tipo de preguntas generalmente tienden a suponer que Stack Overflow es un servicio de codificación gratuito ...
Entonces, ¿cuál es tu desafío real? Es simple:
Su programa o función, etc. debe tomar la entrada como una cadena (de STDIN, parámetro, etc.) y si la cadena contiene Plz send teh codez!
salida -1 flag comment
(voto negativo, marcar como fuera de tema y comentar qué tan mala es una pregunta). De lo contrario, la salida +1
(Estás votando).
¡Pero espera hay mas!
Su programa no debe contener 5 o más de estos conjuntos de caracteres:
- Todos los caracteres especiales (cualquier cosa que no sea un espacio, una nueva línea (
0x0a
), un alfabeto que no distinga entre mayúsculas y minúsculas o un dígito) - Cualquier dígito (0-9)
- Cualquiera de
pzcm
(sin distinción entre mayúsculas y minúsculas) - Cualquiera de
hten
(sin distinción entre mayúsculas y minúsculas) - Cualquiera de
qwryuioasdfgjklxvb
- Cualquiera de
QWRYUIOASDFGJKLXVB
Para ser claros, solo puedes usar hasta 4 de esos conjuntos de caracteres.
Los espacios, las pestañas y las nuevas líneas no están restringidos de ninguna manera, pero aún se incluyen en su recuento de bytes
Restricción final
Su programa debe contener Unicode SOLAMENTE en el rango de 0x20
(espacio) a 0x7e
(~), así como 0x0a
(línea nueva LF) y 0x09
(pestaña). Esto es para excluir los idiomas de golf de código y dar un cambio a los idiomas tradicionales o al menos nivelar el campo de juego.
Notas:
- Este es el código de golf , ¡la respuesta más corta en bytes gana!
- La entrada puede ser de STDIN, un parámetro de función, parámetro de línea de comando, etc., pero no una variable .
- La salida puede ser STDOUT, un valor de retorno de función o incluso un error / excepción. Puede incluir una nueva línea final.
- Se alienta a los idiomas tradicionales a competir porque este desafío prohíbe muchos idiomas de golf al excluir los caracteres Unicode altos. ¡C podría incluso tener una oportunidad de ganar!
- ¿Alguna pregunta? ¡Comenta abajo!
Si es muy difícil ...
Puede ignorar los conjuntos de caracteres en su respuesta, pero luego se vuelve no competitiva.
NOTA: Ahora puede usar hasta 4 juegos de caracteres. De nada.
Puede usar este fragmento para verificar si su código es válido:
fuente
JS (JSFuck), 37959 bytes
Aquí hay una esencia idea general, ya que PPCG odia los códigos largos.
Solo usa caracteres especiales. :PAGS
Aquí está el código original:
fuente
Plz send teh codez!
, quiero decir.z
está mal. facepalmC, 102 bytes
No utiliza ningún dígito ni ninguno de
QWERTYUIOASDFGHJKLXVBN
. Pruébalo en línea!fuente
Retina , 56 bytes
Pruébalo en línea!
Utiliza caracteres especiales, los dos conjuntos de letras que no distinguen entre mayúsculas y minúsculas y otras letras minúsculas.
Primero eliminamos toda la entrada si no contiene
Plz send teh codez
. Si queda alguna entrada, la reemplazamos con-1 flag comment
, evitando el dígito con$#+
.$+
se refiere al último grupo de captura que es$0
(toda la coincidencia) porque no hay grupos de captura.$#+
luego da el número de capturas, que siempre es1
.Finalmente, si la cadena aún está vacía (es decir, la borramos en la primera etapa), la reemplazamos con
+1
(nuevamente usando$#+
para1
).fuente
C #, 77 bytes
No poder usar dígitos es un dolor.
fuente
Python 2,
959487 bytesUtiliza caracteres especiales y todas las letras minúsculas (más tres conjuntos de caracteres y excepto "p", que no distingue entre mayúsculas y minúsculas) para un total de cuatro conjuntos de caracteres utilizados .
Pruébalo en línea! ¡Gracias a @math_junkie por guardar 8 bytes! ¡Gracias a @officialaimm por guardar dos bytes!
Dejar
a
ser laord()
función incorporada.Esto es realmente
b=1
.Si la declaración en el segundo par de paréntesis es verdadera, imprima la segunda cadena en el primer par de paréntesis. De lo contrario, imprima el primero.
fuente
str
y eliminando el espacio después deprint
: repllambda n,b=ord('b')-ord('a'):["+"+`b`,`-b`+" flag comment"][n=="Plz send teh codez!"]
Python 2/3,
817668 bytesUsos:
pzcm
(sin distinción entre mayúsculas y minúsculas)hten
(sin distinción entre mayúsculas y minúsculas)qwryuioasdfgjklxvb
No utiliza:
QWRYUIOASDFGJKLXVB
-8 bytes gracias a math_junkie
fuente
+
lugar deint
: TIOPython 3, 115 bytes
No usa números ni letras mayúsculas.
Pruébalo en línea
fuente
if "p"
,codez!" in
, etc.str(len('a'))
a una variable puede ahorrarle un poco más. Empalmar el número en las cadenas directamente en lugar de llamarstr
también podría ser ventajoso.Lisp común, 81 bytes
Especial + minúscula + 2 mayúsculas = 4 charsets
Sin golf
Explicación
(read-line)
Acepta una línea de entrada de
*standard-input*
(STDIN, por defecto).(search "Plz send teh codez!" ...)
Explora el segundo argumento (la línea de lectura) para el índice donde comienza el primer argumento. Devuelve este índice o
nil
(falso) si no se pudo encontrar.(*)
La multiplicación en lisp se define para tomar un número arbitrario de argumentos, incluido ninguno, en ese caso siempre devuelve 1.
(format t "~:[+~s~;-~s flag comment~]" ...)
#'format
es similarfprintf
osprintf
en C. Su primer argumentot
, designa la salida como*standard-output*
(STDOUT, por defecto). El siguiente argumento es la cadena de formato. "~" se usa como "%" enprintf
- los caracteres que lo siguen designan una operación de formateo."~:[<a>~;<b>~]"
es la operación de formateo condicional. Toma un argumento y continúa con<a>
si el argumento fuenil
(falso). Cualquier otro valor, comot
(verdadero) o un número (por ejemplo), tiene que continuar con<b>
. El tercer argumento para formatear (el primero, despuést
y la cadena de formato) es la búsqueda, por<a>
lo que se elegirá si la búsqueda falla (y<b>
contrario).En este caso, la rama
<a>
(nil
/ false) imprime "+ ~ s". "~ s" convierte un argumento de formato en una cadena e imprime sus caracteres. El cuarto argumento para formatear (el segundo, despuést
y la cadena de formato) es(*)
o 1, entonces obtenemos "+1" impreso.La
<b>
rama es similar: "- ~ s flag comment". También utiliza el cuarto (segundo) argumento para completar sus "~ s", por lo que imprime "-1 comentario de bandera".fuente
sh + sed, 72 bytes
Utiliza conjuntos de caracteres: 1, 3, 4, 5.
Al principio, quería ir con sed puro, pero no tenía idea de cómo evitar el uso de dígitos. Así que usé sh solo por eso.
let ""
tiene un estado de salida de1
, ya que no se puede evaluar como una expresión aritmética.z
es solo una etiqueta y se puede reemplazar con cualquier otro carácter.fuente
Mathematica, 265 bytes
Esto fue dificil.
Versión legible:
Utiliza caracteres especiales
hten
,qwryuioasdfgjklxvb
yQWRYUIOASDFGJKLXVB
. Mathematica sin caracteres especiales sería básicamente imposible, y casi todas las funciones relacionadas con cadenas incluyenString
en su nombre, por lo que realmente limita la elección aquí ...Para obtener los otros conjuntos de caracteres, necesitamos algunos trucos. En primer lugar, para obtener
1
tomamos el negativo del cuadrado del número imaginarioI
:i = -I I
. Más tarde también definimos3
pore = i+i+i
.La letra
P
era bastante sencilla: Mathematica trataa^b
internamente comoPower[a,b]
, por lo que todo lo que tenemos que hacer es tomar el encabezado de this (Power
), convertirlo en una cadena y tomar la primera letra (también conocida comoi
th). (Vamos a cambiar las cosas en cadenas y tomando el n º letra mucho, por lo definimost[s_,n_]:=ToString@s~StringTake~{n}
.) La cartam
es similar: tomar la cabeza dea b
, que esTimes
, y obtener la tercera (akae
º) carta.La letra
c
es un poco más difícil: usamos la identidad trigonométrica1/Sin[x] == Csc[x]
(o mejor dicho,i/Sin[x]
ya que no podemos usar1
), y tomamos la tercera letra deCsc[x]
.La parte realmente difícil es la
z
. Para hacer unz
, usamos laHurwitzZeta
función (sí, realmente). Lo obtenemos resolviendo la relación de recurrenciaRSolve[f[a + i] == f@a - i/Sqrt@a, f@a, a]
, que produce la cadenade los cuales es el 68 ° personaje
z
. Obtenemos el número 68 como4^3 + 4
.Esto probablemente podría ser más golfizado: el material de Hurwitz zeta está prácticamente copiado de la documentación de Mathematica, y probablemente haya una forma más corta de obtener 68, o podríamos usar otro método completamente para el
z
. ¿Alguna sugerencia?fuente
Python 3.5 (
13710298878594 Bytes)Utiliza letras minúsculas (3 caracteres) + caracteres especiales (1 juego de caracteres) = 4 caracteres
Casi estaba planeando evitar los espacios en blanco también, pero la sangría en Python me obligó a mantener una nueva línea, así que dejé los espacios en blanco como estaban.
Pruébalo en línea!
fuente
.upper()
+1
para la entrada que no contienePlz send teh codez!
Groovy, 78 bytes
No utiliza los números o los conjuntos en mayúsculas.
Solo un uso directo del operador ternario.
"a".length()
es una solución para obtener 1
fuente
Swift (no competitivo) - 64 bytes
Lamentablemente utilicé 5 charsets, no podría hacerlo sin ellos ... ¡Las sugerencias son bienvenidas!
fuente