PAŹDZIERNIK 22 JEST MIĘDZYNARODOWY CZAS ZAMKNIĘTY DZIEŃ ! NIESKOŃCZONE, NIEKTÓRE NIE UZNAJĄ CHWAŁY BLOKADY Wszechmocnego CAPSA. MÓWIĄ, ŻE WYGLĄDA „NIEPRAWIDŁOWE” LUB „LUBIĄCE ODKRYWANIE” LUB NIEKTÓRE NIEUCZCIWE. W CELU ZGODNOŚCI Z NINIEJSZYMI SKARGAMI ILLOGICZNYMI I INANOWYMI NALEŻY NAPISZ PROGRAM, KTÓRY ZWRACA NORMALNY TEKST W TEKST „WRAŻLIWY” LUB „UZASADNIONY”, ABY ZACHOWAĆ LUDZI.
Opis
Dane wejściowe i wyjściowe dla twojego rozwiązania będą ciągami zawierającymi tylko drukowalne znaki ASCII.
Łańcuch wejściowy będzie zawierał zero lub więcej uruchomień Caps Lock . A Caps Lock uruchomić (lub CLR w skrócie) jest zdefiniowana jak poniżej:
CLR nie może zawierać małych liter (
a-z
), z wyjątkiem pierwszego znaku słowa .- Słowo , dla celów tego wyzwania, to sekwencja nie-przestrzeni. Tak więc
PPCG
,correcthorsebatterystaple
ijkl#@_>00()@#__f-023\f[
są uważane za słowo s.
- Słowo , dla celów tego wyzwania, to sekwencja nie-przestrzeni. Tak więc
CLR musi również zawierać co najmniej jedną spację; stąd muszą to być co najmniej dwa słowa .
Każde słowo w CLR musi zawierać co najmniej dwie litery (
A-Za-z
).- Zauważ, że odnosi się to do CLR wziętego samodzielnie, bez otaczających znaków, które mogły nie zostać uwzględnione w CLR. Na przykład, to nie CLR ponieważ ciąg sama ma słowo s z mniej niż dwóch liter.
foO Bar
O B
- Zauważ, że odnosi się to do CLR wziętego samodzielnie, bez otaczających znaków, które mogły nie zostać uwzględnione w CLR. Na przykład, to nie CLR ponieważ ciąg sama ma słowo s z mniej niż dwóch liter.
CLR powinny być analizowane „zachłannie” - to znaczy, że zawsze powinieneś znaleźć najdłuższe możliwe CLR.
Po zidentyfikowaniu wszystkich CLR w ciągu wejściowym zamień wielkość liter wszystkich liter w CLR i wyślij wynikowy ciąg.
Przypadki testowe
Pierwszy wiersz jest wprowadzany, a drugi jest wyprowadzany. Pogrubione części danych wejściowych to podciągi, które są uważane za CLR.
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
Zasady
Możesz założyć, że dane wejściowe nigdy nie będą zawierać dwóch lub więcej spacji w wierszu i że nigdy nie będzie zawierać spacji wiodących ani końcowych.
Bonus 20% (pomnóż długość kodu przez .8), jeśli cały kod to CLR. ;) (głównie dla zabawy, ponieważ jest mało prawdopodobne, że zwycięskie zgłoszenie będzie miało ten bonus)
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
PPCG. T
zawiera spację)Odpowiedzi:
CJam,
100868381 bajtówWypróbuj to skrzypce w interpretatorze CJam lub zweryfikuj wszystkie przypadki testowe jednocześnie .
Algorytm
Zidentyfikuj najdłuższy możliwy CLR, który zaczyna się od pierwszego znaku.
Jeśli istnieje, zamień jego skrzynkę, wydrukuj ją i usuń z początku łańcucha.
W przeciwnym razie usuń pojedynczy znak z początku łańcucha i wydrukuj go bez zmian.
Jeśli pozostało więcej znaków, wróć do kroku 1.
Jak to działa
źródło
Perl,
968280 bajtówPrzechodzi wszystkie testy. Zakłada wejście z
STDIN
, drukuje doSTDOUT
.Jak to działa:
ustaw
$y
pasującą funkcję regex ( )dopasuj wiele wystąpień ciągów oddzielonych spacją, które pasują
$y
, użyjs///
do odwrócenia wielkości literJestem pewien, że jest miejsce na ulepszenia. Jeśli istnieje sposób na pozbycie się całej
join-map-split
umowy, może być szansa na zakwalifikowanie się do bonusu :)źródło
a-z
zamiast[:lower:]
. Ponadto-pe
jest zwykle liczony jako 1 bajt, a pojedyncze cudzysłowy jako bajty zerowe.JavaScript, 193
Wyjaśnienie:
źródło