Todo mundo sabe que as notícias são chatas. Realmente chato . A menos que seja sobre políticos e seus escândalos. Isso é divertido! Mas, infelizmente, os políticos podem cometer apenas tantos escândalos. Então, estou empregando você para tornar as notícias mais interessantes.
Objetivo Dado um snippet HTML, execute todas as substituições encontradas aqui , ou seja, nesta figura:
MAS você não deve editar nenhuma tag HTML. Chamo uma palavra válida de qualquer palavra que não seja encontrada em nenhuma tag HTML ou em seus atributos. Ou seja, você não deve substituir <div class="smartphone">iPhone</div>
por <div class="pokedex">iPhone</div>
, mas deve substituir <div>election</div>
por <div>eating contest</div>
.
Regras de análise
- EDITAR Você deve corresponder apenas às palavras delineadas por uma não-palavra. Ou seja, você só deve combinar palavras completas. (Por exemplo, combine "Olá testemunha", mas não "Hellowitness", "Hellow itness" ou "Witnesspacelection".
- Se você não conseguir digitar o caractere no teclado, deverá exibir o equivalente mais próximo. (Por exemplo, "Smartphone" realmente se tornaria "Pokedex")
- O caso de primeira letra ou de todas as letras deve ser mantido. (Por exemplo, "Alegadamente, eles morreram" se torna "Provavelmente, eles morreram", "Eles supostamente morreram" se tornam "Eles meio que provavelmente morreram" e "A ELEIÇÃO!" Se torna "O CONCURSO DE COMER!", Enquanto "SpAcE" se torna "Spaaace" e "novo estudo" se tornam "post no Tumblr")
- Todos os casos devem ser correspondidos. (Ou seja, você deve corresponder a uma palavra, independentemente da capitalização.)
- Qualquer instância que
a <vowel>
seja atendida deve se tornaran <vowel>
e vice-versa . (Por exemplo, "um senador" se torna "um senhor dos elfos"). Você não precisa fazer isso em todas as instâncias, mas pelo menos para suas próprias substituições. - Qualquer coisa no plural também deve reter a pluralização na tradução (por exemplo, "Smartphones" se torna "pokedex" e "Spaces" se torna "Spaaaces")
- Qualquer coisa em um certo tempo deve permanecer nesse tempo na tradução. (Por exemplo, "Reconstruído" torna-se "Vingado", "Reconstrói" torna-se "Vingador" etc.)
- Qualquer coisa no singular deve permanecer singular na tradução (por exemplo, "líder do Congresso" se torna "espírito do rio")
- Se a entrada abranger vários elementos HTML, você ainda deverá correspondê-la, mas poderá "jogar fora" quaisquer elementos intermediários. (Por exemplo,
S<b>pa</b>ace
deve se tornar simplesmente "spaaace"). Se a entrada for independente em um único elemento, ela deverá corresponder adequadamente e a tag retida. - "As testemunhas" devem se tornar "Esses caras que eu conheço"
- "testemunha" deve se tornar "Esse cara que eu conheço"
- "A testemunha" deve se tornar "Aquele cara que eu conheço"
- "Não foi possível entrar em contato para comentar" deve se tornar "É culpado e todo mundo sabe disso"
- "Não pode ser encontrado para comentar" deve se tornar "É culpado e todo mundo sabe disso"
Bónus
Se você encontrar um -N%
bônus, seu new amount = (old amount) * (1 - N/100)
. Portanto, se você encontrou um -5%
bônus com um código de 500 bytes, seu new amount = 500 * (1 - 5/100) = 500 * .95 = 475
.
- -5% de bônus se, para cada instância de "espaço" após a primeira substituição, um "a" extra for adicionado. Assim, o primeiro substituto seria "spaaace", o segundo seria "spaaaace", o terceiro seria "spaaaace", etc.
- Bônus de -5% se, para cada número válido, você substituir esse número por um link para o respectivo quadrinho do XKCD. (Ainda não precisa existir). Se você vai para este bônus, você deve coincidir com números, como
500
,3,000
,4 523
, e5.324
. (Você pode optar por substituir, em vez disso, o número pela imagem dos quadrinhos. Se você fizer isso, em vez de um-5%
bônus, receberá um-15% bonus
. Outro-15%
bônus extra se você puder adicionar o texto do título à imagem, se houver .) - Bônus de -25% se você puder substituir simultaneamente todas as instâncias do lado direito da imagem pelas do lado esquerdo. (Por exemplo, "spaaace" se torna "espaço", "concurso de comida" se torna "eleição" etc.) Se você optar por qualquer um dos bônus, poderá revertê-los para suas respectivas entradas. (Por exemplo,
http://www.xkcd.com/542
deve se tornar "542" e "spaaaaaaaace" deve se tornar "espaço".) - Você pode optar por fazer no mínimo 6 substituições, mas para cada substituição não realizada (excluindo as substituições de bônus), você receberá uma multa adicional de + 10%.
Exemplos de veiculação (sem bônus)
Input: Witnesses allegedly used their smartphones to commit the crime.
Output: These dudes I know kinda probably used their pokedex to commit the crime.
Input: Mayor Golfalot rebuilt the city after the fatal election.
Output: Mayor Golfalot avenged the city after the fatal eating contest.
Input: This <b>new study</b> shows that people in <span class="space">space</span> cannot be reached for comment.
Output: This <b>tumblr post</b> shows that people in <span class="space">spaaace</span> are guilty and everyone knows it.
Input: <b>g</b><i>oo</i><s>g</s><u>le</u> glass is terrible. :(
Output: virtual boy is terrible. :(
Input: Electric SMARTPHONES have been shown to be more productive when not used by Senators and when not used in cars.
Output: Atomic POKEDEX have been shown to be more productive when not used by Elf-lords and when not used in cats.
Input: Homeland Security has been established as an evil foundation, especially in space.
Output: Homestar runner has been established as an evil foundation, especially in spaaace.
Input: The congressional leaders are testy today.
Output: The river spirits are testy today.
Input: SPACE is not a Senator or a cAR.
Output: SPAAACE is not an Elf-lord or a cat.
Input: Mr. Biz is running for reelection.
Output: Mr. Biz is running for reelection.
Input: Google glass !
Output: Virtual boy !
Input: New (or old) study
Output: New (or old) study
Este é um código de golfe , portanto o programa mais curto em bytes vence.
<br/>
)Respostas:
Perl 5 , 850
Muita regex usada ou gerada.
O% l hash é usado para palavras repetidas.
Teste
fonte
JavaScript ES6, 954 bytes
Eu pensei que isso seria muito mais fácil do que era! Originalmente, usei JavaScript para poder facilmente descer apenas para nós de texto e substituí-lo, mas não era assim que a pergunta era, então acabei com essa monstruosidade! Ele passa em todos os casos de teste, exceto no
<b>g</b><i>oo</i><s>g</s><u>le</u> glass is terrible. :(
caso em que toda a cadeia retorna em uma<b>
tag devido ao equilíbrio das tags. A maior parte do código é a tabela de pesquisa, e provavelmente ainda estou perdendo alguns casos extremos, mas não consegui encontrar uma maneira melhor de lidar com o tempo corretamente e tenho certeza de que poderia comprimir isso mais, mas Estou ficando sem idéias ... Tenho certeza de que voltarei a isso mais tarde. Deveria ter usado Perl, melhor escolha @LukStorms !Apliquei um bônus por 5% para
spaaace
obter um adicionala
após cada partida bem-sucedida. Usaalert()
como sugerido por @sysreq , obrigado!Exemplos
Bônus: bookmarklet
Execute isso no seu console para atualizar o texto do corpo no local:
fonte
alert
é mais curto doconsole.log
que contanto que seja executado em um navegador.<b>
tag "problem" é perfeitamente aceitável, se não mais aceitável. E eu amo o último exemplo. Eu estava tentando pensar em um que incorporasse a maioria deles. Parabéns pela primeira resposta! Eu tenho certeza que é competitiva;)