22 DE OUTUBRO É DIA INTERNACIONAL DOS CAPS ! Infelizmente, alguns não reconhecem a glória da trava de todos os céus. DIZEM QUE PARECE "OBRIGADO" OU "GOSTA DE GRITAR" OU ALGUM disparate. A fim de se conformar com essas queixas obviamente ilógicas e inanas, escreva-me um programa que transforma texto normal em texto "sensível" ou "razoável" para fazer com que as pessoas parem de se queixar.
Descrição
A entrada e a saída da sua solução serão cadeias que contêm apenas caracteres ASCII imprimíveis.
A cadeia de entrada conterá zero ou mais execuções de caps lock . Uma execução de caps lock (ou CLR para abreviar) é definida da seguinte maneira:
O CLR não deve conter letras minúsculas (
a-z), exceto como o primeiro caractere de uma palavra .- Uma palavra , para os propósitos deste desafio, é uma sequência de não-espaços. Assim,
PPCG,correcthorsebatterystaple, ejkl#@_>00()@#__f-023\f[são todos considerados palavra s.
- Uma palavra , para os propósitos deste desafio, é uma sequência de não-espaços. Assim,
O CLR também deve conter pelo menos um espaço; portanto, deve ter pelo menos duas palavras s.
Cada uma das palavras s no CLR deve conter pelo menos duas letras (
A-Za-z).- Observe que isso se refere ao CLR obtido por ele mesmo, sem caracteres ao redor que possam não ter sido incluídos no CLR. Por exemplo, não é um CLR porque a sequência possui a palavra s com menos de duas letras.
foO BarO B
- Observe que isso se refere ao CLR obtido por ele mesmo, sem caracteres ao redor que possam não ter sido incluídos no CLR. Por exemplo, não é um CLR porque a sequência possui a palavra s com menos de duas letras.
Os CLRs devem ser analisados "avidamente" - ou seja, você deve sempre encontrar os CLRs mais longos possíveis.
Depois de identificar todos os CLRs na sequência de entrada, troque o caso de todas as letras dentro dos CLRs e produza a sequência resultante.
Casos de teste
A primeira linha é entrada e a segunda é saída. Partes em negrito da entrada são substrings considerados CLRs.
CAPS LOCK IS THE BEST!
caps lock is the best!
I really LOVE pROGRAMMING pUZZLES AND cOde Golf!
I really love Programming Puzzles and Code Golf!
This is a challenge on PPCG. This is a test CASE. TEST
This is a challenge on PPCG. This is a test case. test
LorEM iPSUM DOLoR sIT amet, conSECTETur ADIPISciNG eLIT. MAECENAS iD orci
Lorem Ipsum doloR sIT amet, conSECTETur ADIPIScing Elit. maecenas Id orci
;'>}{/[]'"A*(389971(*(#$&B#@*(% c'>#{@D#$! :,>/;[e.[{$893F
;'>}{/[]'"a*(389971(*(#$&b#@*(% C'>#{@d#$! :,>/;[e.[{$893F
iT'S cAPS lOCK DAY!!! cELebraTE THis WONDERFUL key
It's Caps Lock day!!! Celebrate this WONDERFUL key
aBcDE fGHIj KLmNO pQrST (uVwXY) ZZ___Zz__Z
aBcde Fghij KLmno PqrST (uVwxy) zz___zz__Z
#aA# aA
#aA# aA
Regras
Você pode supor que a entrada nunca conterá dois ou mais espaços seguidos e que nunca conterá um espaço inicial ou final.
Bônus de 20% (multiplique o comprimento do código por 0,8) se todo o código for um CLR. ;) (principalmente apenas por diversão, já que é improvável que o envio vencedor tenha esse bônus)
Isso é código-golfe , então o código mais curto em bytes vence.
PPCG. Tcontém um espaço)