Nota para moderadores e editores : o título desta publicação é válido e não deve ser alterado. O erro de ortografia é intencional e faz parte do desafio.
História de fundo
A típica pergunta SO ruim (estéreo) faz algo como "plz send the codez!" Em outras palavras, ele pede que alguém faça o trabalho para o solicitante e forneça uma solução completa para um problema único. Cito esta pergunta no Meta.SE :
... trata-se de uma categoria específica de perguntas que consistem em absolutamente nenhuma pesquisa, nenhum esforço e simplesmente pedem a solução completa para um problema. Esses tipos de perguntas geralmente tendem a assumir que o Stack Overflow é um serviço de codificação gratuito ...
Então, qual é o seu verdadeiro desafio? É simples:
Seu programa ou função, etc. deve receber a entrada como uma sequência (de STDIN, parâmetro etc.) e se a sequência contiver Plz send teh codez!
saída -1 flag comment
(voto negativo, sinalizador como fora do tópico e comentar sobre quão ruim é uma pergunta.) +1
(você está votando).
Mas espere ... tem mais!
Seu programa não deve conter 5 ou mais desses conjuntos de caracteres:
- Todos os caracteres especiais (qualquer coisa que não seja um espaço, nova linha (
0x0a
), alfabeto que não diferencia maiúsculas de minúsculas ou dígito) - Qualquer dígito (0-9)
- Qualquer um
pzcm
(sem distinção entre maiúsculas e minúsculas) - Qualquer um
hten
(sem distinção entre maiúsculas e minúsculas) - Qualquer um
qwryuioasdfgjklxvb
- Qualquer um
QWRYUIOASDFGJKLXVB
Para ficar claro, você pode usar apenas quatro desses conjuntos de caracteres.
Espaços, guias e novas linhas não são restritos de forma alguma, mas ainda estão incluídos na contagem de bytes
Restrição final
Seu programa deve conter apenas o Unicode no intervalo de 0x20
(espaço) a 0x7e
(~), bem como 0x0a
(nova linha LF) e 0x09
(guia). Isso é para excluir idiomas de código de golfe e alterar os idiomas tradicionais ou, pelo menos, nivelar o campo de jogo.
Notas:
- Este é o código-golfe , a resposta mais curta em bytes vence!
- A entrada pode ser de STDIN, um parâmetro de função, parâmetro de linha de comando, etc., mas não uma variável .
- A saída pode ser para STDOUT, um valor de retorno da função ou até mesmo um erro / exceção. Pode incluir uma nova linha à direita.
- Os idiomas tradicionais são incentivados a competir porque esse desafio proíbe muitos idiomas do golfe, excluindo caracteres Unicode altos. C pode até ter uma chance de ganhar!
- Alguma pergunta? Comente abaixo!
Se é muito difícil ...
Você pode ignorar os conjuntos de caracteres em sua resposta, mas eles se tornam não competitivos.
NOTA: Agora você pode usar até 4 conjuntos de caracteres. De nada.
Você pode usar esse trecho para verificar se seu código é válido:
fonte
JS (JSFuck), 37959 bytes
Aqui está uma essência , já que o PPCG odeia códigos longos.
Usa apenas caracteres especiais. : P
Aqui está o código original:
fonte
Plz send teh codez!
, quero dizer.z
está errado. facepalmC, 102 bytes
Não usa nenhum dígito ou nenhum dos
QWERTYUIOASDFGHJKLXVBN
. Experimente online!fonte
Retina , 56 bytes
Experimente online!
Usa caracteres especiais, os dois conjuntos de letras sem distinção entre maiúsculas e minúsculas e outras letras minúsculas.
Primeiro, removemos toda a entrada se ela não contiver
Plz send teh codez
. Se houver alguma entrada, substituí-la por-1 flag comment
, evitando o dígito por$#+
.$+
refere-se ao último grupo de captura que é$0
(a partida inteira) sind, não há grupos de captura.$#+
depois, fornece o número de capturas, o que é sempre1
.Finalmente, se a string ainda estiver vazia (ou seja, nós a limpamos no primeiro estágio), substituí-la por
+1
(novamente usando$#+
for1
).fonte
C #, 77 bytes
Não poder usar dígitos é uma dor.
fonte
Python 2,
959487 bytesUsa caracteres especiais e todas as minúsculas e minúsculas (mais três conjuntos de caracteres e exceto "p", que não diferencia maiúsculas de minúsculas) para um total de quatro conjuntos de caracteres usados .
Experimente online! Obrigado a @math_junkie por salvar 8 bytes! Obrigado a @officialaimm por salvar dois bytes!
Let
a
Ser aord()
função interna.Isso é mesmo
b=1
.Se a instrução no segundo par de colchetes for verdadeira, imprima a segunda sequência no primeiro par de colchetes. Caso contrário, imprima o primeiro.
fonte
str
, e você, removendo o espaço depoisprint
: repllambda n,b=ord('b')-ord('a'):["+"+`b`,`-b`+" flag comment"][n=="Plz send teh codez!"]
Python 2/3,
817668 bytesUsos:
pzcm
(sem distinção entre maiúsculas e minúsculas)hten
(sem distinção entre maiúsculas e minúsculas)qwryuioasdfgjklxvb
Não usa:
QWRYUIOASDFGJKLXVB
-8 bytes graças a math_junkie
fonte
+
em vez deint
: TIOPython 3, 115 bytes
Não usa números ou letras maiúsculas.
Experimente online
fonte
if "p"
,codez!" in
etc.str(len('a'))
a uma variável pode economizar um pouco mais. Emendar o número diretamente nas cadeias de caracteres em vez de ligarstr
também pode ser vantajoso.Lisp comum, 81 bytes
Especial + letras minúsculas + 2 letras maiúsculas = 4 conjuntos de caracteres
Ungolfed
Explicação
(read-line)
Aceita uma linha de entrada de
*standard-input*
(STDIN, por padrão).(search "Plz send teh codez!" ...)
Procura no segundo argumento (a linha de leitura) o índice onde o primeiro argumento começa. Retorna esse índice ou
nil
(false) se não puder ser encontrado.(*)
A multiplicação no lisp é definida para receber um número arbitrário de argumentos, incluindo nenhum - nesse caso, ele sempre retorna 1.
(format t "~:[+~s~;-~s flag comment~]" ...)
#'format
é semelhante afprintf
ousprintf
em C. Seu primeiro argumentot
, designa a saída como*standard-output*
(STDOUT, por padrão). O próximo argumento é a string de formato. "~" é usado como "%" noprintf
(s) caractere (s) a seguir designa uma operação de formatação."~:[<a>~;<b>~]"
é a operação de formatação condicional. É necessário um argumento e continua com<a>
se o argumento foinil
(falso). Qualquer outro valor, comot
(true) ou um número (por exemplo), continua com ele<b>
. O terceiro argumento a ser formatado (o primeiro, o depoist
e a string de formato) é a pesquisa, portanto<a>
será escolhido se a pesquisa falhar (ou<b>
não).Nesse caso, a ramificação
<a>
(nil
/ false) imprime "+ ~ s". "~ s" converte um argumento de formato em uma string e imprime seus caracteres. O quarto argumento para formatar (o segundo, o depoist
e a sequência de formatação) é(*)
1 ou, portanto, obtemos "+1" impresso.O
<b>
ramo é semelhante: "- ~ s comentário da bandeira". Ele também usa o quarto (segundo) argumento para preencher seus "~ s", para que ele imprima "-1 flag comment".fonte
sh + sed, 72 bytes
Usa conjuntos de caracteres: 1, 3, 4, 5.
No começo, eu queria usar o puro sed, mas não tinha ideia de como evitar o uso de dígitos. Então eu usei sh apenas para isso.
let ""
tem um status de saída de1
, pois não pode ser avaliado como uma expressão aritmética.z
é apenas um rótulo e pode ser substituído por qualquer outro caractere.fonte
Mathematica, 265 bytes
Isso foi difícil.
Versão legível:
Usa caracteres especiais,
hten
,qwryuioasdfgjklxvb
eQWRYUIOASDFGJKLXVB
. O Mathematica sem caracteres especiais seria basicamente impossível, e quase todas as funções relacionadas a strings incluemString
em seus nomes, o que realmente limita a escolha aqui…Para obter os outros conjuntos de caracteres, precisamos de alguns truques. Em primeiro lugar, para obter
1
tomamos o negativo do quadrado do número imaginárioI
:i = -I I
. Mais tarde, também definimos3
pore = i+i+i
.A carta
P
era bastante direta: o Mathematica trataa^b
internamente comoPower[a,b]
, então tudo o que precisamos fazer é pegar o cabeçalho disso (Power
), transformá-lo em uma string e pegar a primeira (akai
th) letra. (Nós vamos estar virando as coisas em cordas e tomando o n º carta muito, então nós definimost[s_,n_]:=ToString@s~StringTake~{n}
.) A cartam
é semelhante: tirar a cabeça doa b
que éTimes
, e obter o terceiro (akae
th) carta.A letra
c
é um pouco mais difícil: usamos a identidade trigonométrica1/Sin[x] == Csc[x]
(ou melhor,i/Sin[x]
uma vez que não podemos usar1
) e usamos a terceira letra deCsc[x]
.A parte mais difícil é a
z
. Para fazer umz
, usamos aHurwitzZeta
função (sim, realmente). Nós conseguimos isso resolvendo a relação de recorrênciaRSolve[f[a + i] == f@a - i/Sqrt@a, f@a, a]
, que produz a stringdos quais o 68º caractere é
z
. Temos o número 68 como4^3 + 4
.Provavelmente isso poderia ser ainda mais complicado: o material zeta de Hurwitz é praticamente copiado da documentação do Mathematica, e provavelmente existe uma maneira mais curta de obter 68 - ou podemos usar outro método inteiramente para o
z
. Alguma sugestão?fonte
Python 3.5 (
13710298878594 Bytes)Usa letras minúsculas (3 conjuntos de caracteres) + caracteres especiais (1 conjunto de caracteres) = 4 conjuntos de caracteres
Eu estava quase planejando evitar espaços em branco também, mas o recuo em python me forçou a manter uma nova linha, então deixei os espaços em branco como estavam.
Experimente online!
fonte
.upper()
+1
para a entrada que não contémPlz send teh codez!
Groovy, 78 bytes
Não usa os números ou os conjuntos em maiúsculas.
Apenas um uso direto do operador ternário.
"a".length()
é uma solução alternativa para obter 1O que outras pessoas estão dizendo
fonte
Swift (não competitivo) - 64 bytes
Infelizmente usei 5 conjuntos de caracteres, não poderia fazê-lo sem eles ... Sugestões são bem-vindas!
fonte