Wyzwanie kompresji tekstu na Twitterze

ZasadyTwój program musi mieć dwa tryby:kodowanie irozszyfrowanie.

Gdykodowanie:

Twój program musi przyjmować dane wejściowe jako czytelne dla człowiekaLatin1 tekst, prawdopodobnie angielski.Nie ma znaczenia, czy zignorujesz znaki interpunkcyjne.Wystarczy martwić się o rzeczywiste angielskie słowa, a nie L337.Dowolne litery akcentowane można przekształcić w proste ASCII.Możesz wybrać sposób postępowania z liczbami.123raz Dwa Trzysto dwadzieścia trzy1231 2 3sto dwadzieścia trzyraz Dwa Trzysto dwadzieścia trzy1231 2 3

Twój program musi wysyłać komunikat, który może być reprezentowany w

140 punktów kodowych w zakresieU+0000U+10FFFF

Wyłączając nie-znaki:

U+FFFEU+FFFFU+nFFFE, U+nFFFF gdzien jest110 szesnastkowyU+FDD0U+FDEFU+D800U+DFFF (zastępcze punkty kodowe).

Może być wyprowadzony w dowolnym rozsądnym kodowaniu do wyboru; każde kodowanie obsługiwane przezGNU ANTYLOPAiconv będzie uznany za rozsądny, a kodowanie rodzimej platformy lub kodowanie ustawień regionalnych będzie prawdopodobnie dobrym wyborem.

Gdyrozszyfrowanie:

Twój program powinien przyjąć jako wyjście dane wyjściowe twojegokodowanie tryb.Wyjście tekstowe powinno być przybliżeniem tekstu wejściowego.Im bliżej oryginalnego tekstu, tym lepiej.Nie musi mieć żadnych znaków interpunkcyjnych.

Tekst wyjściowy powinien być czytelny dla człowieka, prawdopodobnie także angielskiego.

Może to być L337 lub lol.Proces dekodowania może nie mieć dostępu do żadnego innego wyjścia procesu kodowania innego niż wyjście określone powyżej; to znaczy, nie możesz przesłać tekstu gdzieś i wyprowadzić URL do pobrania procesu dekodowania, albo cokolwiek głupiego w ten sposób.Ze względu na spójność interfejsu użytkownika program musi zachowywać się w następujący sposób:Twój program musi być skryptem, który można ustawić na plik wykonywalny na platformie z odpowiednim tłumaczem lub programem, który można skompilować do pliku wykonywalnego.Twój program musi również przyjąć za swój pierwszy argumentencode lubdecode aby ustawić tryb.Twój program musi wziąć udział w co najmniej jednym z następujących sposobów:Wejdź ze standardowego wejścia i wyprodukuj wyjście na standardowym wyjściu.my-program encode <input.txt >output.utfmy-program decode <output.utf >output.txtWeź dane z pliku o nazwie podanej w drugim argumencie i wygeneruj dane wyjściowe w pliku o nazwie w trzecim.my-program encode input.txt output.utfmy-program decode output.utf output.txtAby rozwiązać problem, napisz:Twój kod w całości i / lub link do niego umieszczony w innym miejscu (jeśli jest bardzo długi lub wymaga kompilacji wielu plików lub czegoś).Wyjaśnienie, jak to działa, jeśli nie jest to od razu widoczne z kodu lub jeśli kod jest długi i ludzie będą zainteresowani podsumowaniem.Przykładowy tekst, z oryginalnym tekstem, tekstem, który kompresuje i dekodowanym tekstem.Jeśli budujesz na pomyśle, że ktoś inny miał, przypisz je. W porządku jest próba dopracowania czyjegoś pomysłu, ale tymusi przypisz im.

Zasady są odmianą zasad dlaWyzwanie kodowania obrazów na Twitterze.

questionAnswers(4)

yourAnswerToTheQuestion