Wprowadzenie
Używasz Twittera (udawajmy, jeśli nie), gdzie masz do 140 znaków na każdy tweet, którym chcesz się podzielić ze światem. Jeśli chcesz napisać na Twitterze do swoich zwolenników, adres Gettysburga Abrahama Lincolna , musisz podzielić tekst na wiele 140-znakowych części, aby wyciągnąć całą wiadomość. Jednak te fragmenty nie zawsze powinny mieć dokładnie 140 znaków. Powiedzmy na przykład, że podzieliliśmy mowę na 17-znakowe fragmenty, w końcu otrzymalibyśmy tweety:
- CZTERY WYNIKI I SE
- VEN YEARS AGO NASZE
- BRACIE OJCIEC
- PONADTO W TYM CON
- NADAJ NOWY NATI
- NA POJĘTE W L
- (i tak dalej)
To nie dobrze! Po rozbiciu poszczególnych słów może być trudno zrozumieć, co próbujesz powiedzieć. Ponadto, na twitterverse, jeden z twoich obserwujących może natknąć się na określony tweet i nie zdawać sobie sprawy, że wiadomość zawiera więcej, więc będziesz chciał numerować swoje tweety, aby mieli pewien kontekst do pracy (nadal używając fragmentów 17-znakowych ):
- (1/7) CZTERY WYNIKI
- (2/7) SIEDEM LAT AGO
- (3/7) NASI OJCOWIE
- (4/7) NIESAMOWITE FORTH ON
- (5/7) TEN KONTYNENT A
- (6/7) NOWY NARÓD
- (7/7) POJĘTE W ...
Możesz ręcznie ustalić najlepszą konfigurację dla twoich tweetów, ale do tego mamy komputery!
Wyzwanie
W najkrótszym możliwym kodzie parsuj adres Gettysburga (lub dowolny tekst, ale będziemy go trzymać jako przykład) w zestawie tweetów składających się z nie więcej niż 140 znaków (załóż ASCII, ponieważ nasz przykładowy tekst nie powinien mieć wszelkie nietypowe / nietypowe fragmenty).
Detale
- Twoja funkcja / program / etc powinna przyjmować pojedynczy argument łańcuchowy i wypisywać jeden wiersz tekstu dla każdego tweeta.
- Załóżmy, że te dane wejściowe nigdy nie spowodują więcej niż 99 wszystkich tweetów podczas parsowania, niezależnie od tego, jak zdecydujesz się parsować (o ile ten wybór nadal pasuje do innych punktów wyzwania).
- Tweety trzeba obejmują
tweet numberodtotal tweetswskaźnika w formacie „(x/y)” poprzedzający ciało tweet.- Ta liczba zajmie część twojego 140-znakowego miejsca!
- Fragmenty tweetów mogą być dzielone tylko na nowej linii lub spacji.
- Niedozwolone są łączniki, kropki, przecinki i inne znaki interpunkcyjne, chyba że bezpośrednio poprzedzają lub następują po nich spacja lub nowa linia.
- Tweety powinny składać się z jak największej liczby pełnych słów.
- To ograniczenie jest trochę elastyczne, np. Kiedy twój ostatni tweet zawiera tylko jedno słowo
- To jest kod golfowy, więc wygrywa najkrótszy kod.
Pełny tekst adresu Gettysburg
(Twój kod powinien nadal być w stanie obsłużyć dowolny przekazany do niego ciąg ASCII.)
CZTERY PUNKTY I SIEDEM LAT PRZECIWKO NASZYM OJCOWI ZRÓWNOWAŻIŁO TEN KONTYNENT, NOWY NARÓD POJĘTY W LIBERTY I ZAANGAŻOWANY W PROPOZYCJĘ, ŻE WSZYSTKIE MĘŻCZYZNY SĄ TWORZENI RÓWNE. TERAZ JESTEŚMY ZAANGAŻOWANI W WIELKĄ WOJNĘ CYWILNĄ TESTUJĄCĄ, CZY NARÓD LUB DOWOLNY NARÓD TAK POJĘTY I DEDYKOWANY MOŻE DŁUGO ZABRANIAĆ. POZNAJEMY SIĘ NA WIELKIM BITWIE TEGO WOJNY. POTRZEBUJEMY POTRZEBOWAĆ CZĘŚĆ TEGO DZIEDZINY JAKO OSTATECZNE MIEJSCE ODPOCZYNKU DLA TYCH, KTÓRZY OTRZYMUJĄ ŻYCIE, ŻE NARÓD MOŻE ŻYĆ. JEST RÓWNIEŻ MONTAŻEM I WŁAŚCIWOŚCIĄ, ŻE NALEŻY TO ROBIĆ. ALE W WIĘKSZYM ROZUMIENIU NIE MOŻEMY DEDYKOWAĆ, NIE MOŻEMY POTRZEBOWAĆ, NIE MOŻEMY POŁOŻYĆ TEGO UZIEMIENIA. ODWAŻNI MĘŻCZYZNI, ŻYJĄCY I MARTWY, KTÓRZY MÓWIĄ SIĘ TUTAJ, POTRAFILI GO DALEKO O NASZEJ NISKIEJ MOCY, BY DODAWAĆ LUB ODCZYTAĆ. ŚWIAT MA MAŁO PAMIĘTAĆ LUB DŁUGO PAMIĘTAĆ, CO MÓWIMY TUTAJ, ALE NIGDY NIE ZAPOMNIĆ, CO TUTAJ TUTAJ. OD NAS ŻYWĄ RATERĘ POTRZEBUJESZ TUTAJ DO NIEKOŃCZĄCEJ SIĘ PRACY, KTÓRZY TU WYSYŁAJĄ TEN DALEKO ZNACZNIE ZAAWANSOWANY. ZNAMY, ŻE NAS POTRZEBUJE WIELKIE ZADANIE POZOSTAŁE PRZED NAMI, ŻE Z TYCH UCZCIWYCH MARTWYCH PODKREŚLAMY UWAGĘ, ŻE NASTĘPUJĄ OSTATNIE PEŁNE DZIAŁANIE DEKORACJI, ŻE NIE MAMY DOKŁADNIE ODWAŻNIŁA SIĘ, ŻE NARÓD POD WZGLĘDEM BOGA NOWA NARODZENIE WOLNOŚCI I ŻE RZĄD LUDU LUDZI LUDZI LUDZI NIE ZGINĄ ZIEMI.