Desafío simple inspirado en la popularidad de mi impresión anterior de texto invisible e impresión de desafíos de texto invisible real , y el mismo desafío de cadena diferente .
Dada una cadena que consta de solo caracteres imprimibles ( 0x20 to 0x7E
), imprima todos los caracteres imprimibles que no estén presentes en la cadena.
Entrada
Una cadena o conjunto de caracteres, que consta de solo caracteres ASCII imprimibles
Salida
Todos los caracteres ASCII imprimibles no están presentes en la cadena de entrada, en ningún orden.
Casos de prueba
Input: "Hello, World!"
Output: ""#$%&'()*+-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~"
========
Input: "Hi!"
Output: " "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~"
========
Input: ""
Output: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
========
Input: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
Output: ""
Puntuación
Este es el código de golf, por lo que gana menos bytes en cada idioma
set( 'a', 'b', 'c' )
Respuestas:
GS2 , 2 bytes
Pruébalo en línea!
Cómo funciona
fuente
Perl 6 , 29 bytes
Tenga en cuenta que el resultado es aleatorio porque los conjuntos s no están ordenados.
Pruébalo
Expandido:
También hay una versión ASCII de
∖
(-)
, pero requeriría un espacio antes para que no se analice como una llamada de subrutina.fuente
Python 3.5 , 39 bytes
Pruébalo en línea!
Convierte la entrada en un conjunto y la elimina del conjunto que contiene todos los caracteres ascii.
fuente
Japt , 14 bytes
Pruébalo en línea!
Guardado 4 bytes gracias a Shaggy y Obarakon
fuente
127
con#
para guardar un byte y elimineU
para guardar otro.¦
y reorganizar sus argumentos para guardar algunos bytes. Además, 127 se puede acortar TIOHaskell, 32 bytes
Pruébalo en línea!
Función de biblioteca aburrida para establecer la diferencia:
Haskell, 31 bytes
fuente
MATL , 5 bytes
Pruébalo en línea!
¡Gracias a Luis Mendo por jugar 8 bytes de descuento!
Explicación:
La diferencia de conjunto simétrico dará a cada elemento presente en exactamente uno de los dos conjuntos de entrada. (pero no ambos) Esto siempre dará la respuesta correcta, ya que el conjunto de entrada siempre será un subconjunto del segundo conjunto (todo ASCII imprimible).
Versión original:
Explicación:
fuente
Brachylog , 5 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript (ES6), 74 bytes
¡Estoy seguro de que hay una forma más corta de hacer esto!
Intentalo
fuente
Array(95)
incluir a los desaparecidos~
}
cuando escribí esto. Solucionado ahora, gracias.String.fromCharCode
es un imbécil, ¡por eso! : D~
que no cambiaba nada, excepto que estaba en la especificación. Además, la parte "Pruébelo" debe actualizarse.Bash ,
47 4340 bytesPruébalo en línea!
Genera rango hexa, invierte el volcado hexadecimal para eliminar caracteres eliminados presentes en el primer parámetro.
fuente
Octava,
2220 bytesGracias a @Luis Mendo ahorró 2 bytes.
Pruébalo en línea!
Otra respuesta:
Pruébalo en línea!
fuente
@(s)setxor(' ':'~',s)
ahorra 1 byte@(s)setxor(32:'~',s)
parece funcionar también --- y el mismo comentario para eso :-)PHP, 42 bytes
Entrada como matriz
Salida como cadena
Pruébalo en línea!
PHP, 53 bytes
Entrada como cadena
Salida como cadena
reemplazar
<?=join
conprint_r
una salida como matrizPruébalo en línea!
fuente
Step 1: automatic starting tag
buenophp -r
... pero por ejemplo, en este ejemplo no paga porqueecho
es más largo que<?=
.CJam , 8 bytes
Donde
␡
es un carácter de eliminación literal.Pruébalo en línea!
fuente
-
funciona en lugar de^
.Perl, 39 bytes
Corre con
perl -pe
.fuente
echo 'Hello World!' | perl -pe 's!.*!"pack(c95,32..126)=~y/$_//dr"!ee'
. Esto funciona para mí en Perl v5.14 y v5.24.brainfuck , 120 bytes
Pruébalo en línea!
Envuelto:
Explicado:
fuente
Ohm , 3 bytes
Pruébalo en línea!
Nota: también puede ingresar su entrada como una cadena ( ejemplo ), pero falla para el caso de entrada vacía.
fuente
Ruby,
231817 bytesUtiliza una función lambda según los comentarios de @ sethrin.
Versión anterior:
fuente
s
tiene que leerse desde STDIN o suministrarse como un argumento de función? El desafío también especifica que la entrada se puede dar como una matriz de caracteres. La conversión a una lambda stabby y la caídachars
proporciona una solución de 16 bytes.->(s){[*' '..?~]-s)}
stdin
vinculado a una variable global. En Ruby$<
es un atajo parastdin
pero las lambdas tienden a ser más cortas. Las convenciones sobre entrada y salida están aquí . Tampoco hago mucho, así que si las reglas no son lo que creo, hágamelo saber.APL, 13 bytes
Sencillo:
fuente
R , 50 bytes
devuelve una función anónima Convierte la cadena de entrada en enteros, calcula la diferencia establecida entre el rango imprimible y los valores de entrada, y luego los vuelve a convertir en una cadena y la devuelve.
Pruébalo en línea!
fuente
PHP, 53 bytes
Ejecutar como tubería con
-r
.fuente
C #,
7471 bytesVersión antigua con la creación de un rango de 74 bytes:
fuente
05AB1E ,
54 bytes-1 gracias a Emigna
Pruébalo en línea!
fuente
V , 20 bytes
Pruébalo en línea!
Hexdump:
fuente
C (gcc) ,
7572706850 bytesPruébalo en línea!
fuente
||
para hacer que esto funcione en "estándar" C??:
es una extensión de GNU. Sin embargo, funciona tan bien en clang y tcc.Jalea , 8 bytes
¿De verdad, 8 bytes? ¡Por favor, dime que me perdí algo!
Pruébalo en línea!
¿Cómo?
Alternativamente
Desde este desafío
ØṖ
, se ha introducido un nuevo átomo que produce todos los caracteres ASCII imprimibles, haciendo que el siguiente trabajo para 3 bytes:fuente
Carbón ,
1815108 bytesPruébalo en línea! El enlace es a la versión detallada del código. Editar: guardado 3 bytes al pasar por caracteres en lugar de enteros. Guarde otros 5 bytes cuando descubrí la
γ
variable indocumentada que contiene los caracteres ASCII imprimibles. Se guardaron otros 2 bytes cuando @ ASCII solo fijó entradas predefinidas en modo detallado (la respuesta sigue siendo válida en su estado actual, es solo el enlace en línea probarlo que no hubiera funcionado en ese momento).fuente
Mathematica, 35 bytes
Función anónima. Toma una lista de caracteres como entrada y devuelve una lista de caracteres como salida.
fuente
Lua, 78 bytes
fuente
shortC , 33 bytes
Conversiones realizadas en este programa:
A
->int main(int argc, char **argv) {
O
->for(
@
->argv
P
->putchar
));}
El programa resultante se ve así:
Pruébalo en línea!
fuente
Pyth , 17 bytes
El enfoque ingenuo.
Explicación:
¡Pruébalo en línea!
fuente
Clojure, 60 o 49 bytes
Estas "solicitudes" me están matando: / Oh, si devolver una lista está bien, entonces esto es un poco más corto.
fuente