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);}}
não 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);
}
}
}
}
Esse é um problema interessante, porque os tokens individuais podem se beneficiar de sua forma mais longa porque reutilizam caracteres. Por exemplo, normalmente String[]
seria mais curto, mas String...
elimina a necessidade de colchetes na sequência condicional.
Descobri que o truque era tentar usar caracteres no início e no final do intervalo para que você possa excluí-los da saída simplesmente alterando o início e o fim do loop.
Para Java, um personagem-chave para excluir é "
, porque ter que na seqüência requer escapar dela, que adiciona \
ao seu programa, que precisa ir na corda, que acrescenta \\
. Ao remover "
da sua cadeia condicional, você remove 4 caracteres. Isto pode ser conseguido por ter certeza que você usa
e !
e iniciar o seu ciclo de #
.
Todas as letras minúsculas aparecer perto do final do intervalo, com apenas {
, |
, }
e ~
atrás deles. Devido à verbosidade do Java, a maioria das letras minúsculas é usada apenas para o clichê. Da mesma forma, {
e }
são triviais para um programa Java, porque o clichê requer isso.
|
pode ser usado se você tiver uma condição ou, mas não consegui encontrar uma maneira de tirar vantagem de uma que leva a um programa mais curto do que apenas usar |
como um operador bit a bit. O |0
que me faz sentir um pouco sujo, porque é a única parte que é um nop apenas para obter o personagem lá dentro.
~0
rendimentos -1
, o que é útil, porque é com isso que precisamos verificar indexOf
. Combinar isso com o uso !=
do loop condicional elimina <
completamente o caractere, o que significa que ele não precisa entrar na sequência condicional.
0x20
para0x7e
, que são definidos como os "caracteres ASCII imprimíveis". Tecnicamente, guias e novas linhas são realmente caracteres de controle.