Java - 126 caracteres
minimizado:
class hjq{public static void main(String...w){for(char z='"'|0;++z!='a';)if("'()+.0;=OS".indexOf(z)==~0)System.out.print(z);}}
no minimizado:
class hjq {
public static void main(String... w) {
for (char z = '"'|0; ++z != 'a';) {
if ("'()+.0;=OS".indexOf(z) == ~0) {
System.out.print(z);
}
}
}
}
Este es un problema interesante, porque los tokens individuales podrían beneficiarse de su forma más larga porque reutiliza los caracteres. Por ejemplo, normalmente String[]sería más corto, pero String...elimina la necesidad de los corchetes en la cadena condicional.
Descubrí que el truco era tratar de usar caracteres al principio y al final del rango para que pueda excluirlos de la salida simplemente alterando el inicio y el final de su ciclo.
Para Java, un carácter clave para excluir es ", porque tener eso en la cadena requiere escapar, lo que agrega \a su programa, que debe ir en la cadena, que agrega \\. Al eliminar "de su cadena condicional, elimina 4 caracteres. Esto se puede conseguir asegurándose de que utilice y !e iniciar el bucle desde #.
Todas las letras minúsculas aparecen cerca del extremo superior del rango, la única {, |, }y ~viene después de ellos. Debido a la verbosidad de Java, la mayoría de las letras minúsculas se usan solo para la repetitiva. Del mismo modo, {y} son triviales para un programa Java, porque la repetitiva los requiere.
|se puede usar si tiene una condición o, pero no pude encontrar una manera de aprovechar una que conduzca a un programa más corto que simplemente usarla |como operador bit a bit. El |0me hace sentir un poco sucio, porque es la única parte que es un nop sólo para obtener el carácter de allí.
~0rendimientos -1, lo cual es útil porque eso es lo que debemos verificar indexOf. La combinación de esto con el uso !=del bucle condicional elimina el <carácter por completo, lo que significa que no necesita ir dentro de la cadena condicional.
0x20de0x7e, que se definen como los "caracteres ASCII imprimibles". Técnicamente, las pestañas y las nuevas líneas son en realidad caracteres de control.