Bugün sizin göreviniz bir metin kompresörü icat etmektir.
Görev
İki fonksiyon yazacaksınız:
Paketleyici ASCII karakter (U 007F için U + 0000) bir dizi kabul eder ve mümkün olan en az karakter içeren, bir Unicode dizgisini (U 10FFFF değerinden U + 0000) çıkaran bir fonksiyonudur.
Paket açıcı kodlanmış Unicode dizesi kabul eder ve tam olarak orijinal ASCII dizge çıktılar bir fonksiyondur.
Giriş
Tek yetkili giriş ASCII dizesidir (paketleyici için) ve paketlenmiş Unicode dizisidir (paketinden çıkarmak için). Kullanıcı girişi yok, internet bağlantısı yok, dosya sistemi kullanılamıyor.
İşlevleriniz bu ingilizce kelime listesine erişebilir . Bu listeyi yerel bir txt dosyası olarak kullanabilir veya içeriğini kaynak kodunuzda bir dize veya bir dize dizisi olarak kopyalayabilirsiniz .
İşlevlerinizde aşağıdaki snippet'leri zor kodlayamazsınız.
Çıktı
Her iki işlev için de tek yetkili çıktı bir karakter dizisidir.
Paketleyicinin çıktısı, paketleyicinin girdisiyle tamamen aynı karakterleri içermelidir.
Girişleriniz ve çıkışlarınız, tüm Unicode'u (UTF-8/16/32, GB18030, ...) destekleyen herhangi bir karakter kodlamasını kullanabilir, çünkü puanınız yalnızca çıktıdaki Unicode karakter sayısına bağlı olacaktır. Lütfen, hangi kodlamayı kullandığınıza emin olun.
Çıktınızdaki Unicode karakterlerin sayısını saymak için bu aracı kullanabilirsiniz: http://mothereff.in/byte-counter
puanlama
Girişiniz (bu foruma aldığım) takip eden 10 metin parçasını paketleyip açabilmelidir.
Puanınız, 10 paketlenmiş dizginizin boyutlarının (Unicode karakterlerinde) + iki işlevinizin boyutudur (Unicode karakterlerinde de)
Kullanırsanız, sözlük boyutunu saymayın.
Lütfen girişlerinize her snippet'in "puanını" ve paketlenmiş sürümlerini ekleyin.
En düşük puan kazanır.
Veri
İşte puanınızı hesaplamak için kodlanacak pasajlar:
1: Rick Roll şarkı sözleri (1870b): Biz golf kodlayacak yabancı değiliz, kuralları biliyorsunuz, ve ben de
Biz sevecek yabancı değiliz Kuralları biliyorsun, ben de Tam bir bağlılık düşündüğüm şey Bunu başka bir erkekten almazsın Sadece sana nasıl hissettiğimi söylemek istiyorum Anlamanı sağlamalıyım Senden asla vazgeçmeyeceğim Seni asla hayal kırıklığına uğratmayacağım Asla koşup seni terk etmeyeceğim Seni asla ağlatmayacağım Asla elveda demeyeceğim Asla yalan söylemeyecek ve sana zarar vermeyeceğim Birbirimizi uzun zamandır tanıyoruz. Kalbin ağrıyor ama Söylemek için çok utangaçsın İçimizde ikimiz de neler olduğunu biliyoruz. Oyunu biliyoruz ve oynayacağız Ve bana nasıl hissettiğimi sorarsan Sakın bana görmeyecek kadar kör olduğunu söyleme Senden asla vazgeçmeyeceğim Seni asla hayal kırıklığına uğratmayacağım Asla koşup seni terk etmeyeceğim Seni asla ağlatmayacağım Asla elveda demeyeceğim Asla yalan söylemeyecek ve sana zarar vermeyeceğim Senden asla vazgeçmeyeceğim Seni asla hayal kırıklığına uğratmayacağım Asla koşup seni terk etmeyeceğim Seni asla ağlatmayacağım Asla elveda demeyeceğim Asla yalan söylemeyecek ve sana zarar vermeyeceğim (Ooh, pes et) (Ooh, pes et) (Oh) Asla vermeyeceğim, asla vermeyeceğim (Pes) (Oh) Asla vermeyeceğim, asla vermeyeceğim (Pes) Birbirimizi uzun zamandır tanıyoruz. Kalbin ağrıyor ama Söylemek için çok utangaçsın İçimizde ikimiz de neler olduğunu biliyoruz. Oyunu biliyoruz ve oynayacağız Sadece sana nasıl hissettiğimi söylemek istiyorum Anlamanı sağlamalıyım Senden asla vazgeçmeyeceğim Seni asla hayal kırıklığına uğratmayacağım Asla koşup seni terk etmeyeceğim Seni asla ağlatmayacağım Asla elveda demeyeceğim Asla yalan söylemeyecek ve sana zarar vermeyeceğim Senden asla vazgeçmeyeceğim Seni asla hayal kırıklığına uğratmayacağım Asla koşup seni terk etmeyeceğim Seni asla ağlatmayacağım Asla elveda demeyeceğim Asla yalan söylemeyecek ve sana zarar vermeyeceğim Senden asla vazgeçmeyeceğim Seni asla hayal kırıklığına uğratmayacağım Asla koşup seni terk etmeyeceğim Seni asla ağlatmayacağım Asla elveda demeyeceğim Asla yalan söylemeyecek ve sana zarar vermeyeceğim
2: Golfçü (412b): Golf ASCII-sanat
'\. . |> 18 >> \. '. | O >>. 'o | \. | / \. | / /. ' | jgs ^^^^^^^ `^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
3: elmas (233b): Bu el yazısını yazdır
1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321 123456787654321 1234567654321 12345654321 123454321 1234321 12321 121 1
4: alfabeyi dört kez (107b): alfabeyi dört kez yazdırın
abcdefghijklmnopqrstuvwxyz qwertyuiopasdfghjklzxcvbnm pyfgcrlaoeuidhtnsqjkxbmwvz zyxwvutsrqponmlkjihgfedcba
5: Old McDonald's şarkı sözleri (203b): Old MacDonald işlevi
Yaşlı MacDonald'ın bir çiftliği vardı, EIEIO. Ve o çiftlikte bir ineği vardı, EIEIO, Burada bir moo moo ve bir moo moo var. Burada bir moo, bir moo, her yerde bir moo moo, Yaşlı MacDonald'ın bir çiftliği vardı, EIEIO!
6: Saatin etrafında Rock şarkı sözleri (144b): Saatin etrafında Rock
1, 2, 3, 4, saat rock, 5, 6, 7, 8, 9, 10, 11, 12 Bu gece saatlerce sallanacağız.
7: Merhaba Dünya (296b): ASCII sanatında dünyaya "Merhaba" deyin
_ _ _ _ _ _ _ _ | | | | ___ | | | ___ __ _____ _ __ | | __ | | | | | _ | | / _ \ | | / _ \ \ \ / \ / / _ \ | '__ | | / _` | | | _ | __ / | | (_) | \ VV / (_) | | | | (_ | | _ | | _ | | _ | \ ___ | _ | _ | \ ___ () \ _ / \ _ / \ ___ / | _ | | _ | \ __, _ (_) | /
8: İrlandalı kutsama (210b): Eski bir İrlandalı kutsama
Yol seninle tanışabilsin Rüzgar her zaman arkanızdan essin Güneş yüzünüzde parlasın Yağmurlar tarlalarınızda yumuşak kalır Ve tekrar buluşana kadar Tanrı sizi Elinin çukurunda tutabilir
9: Yaşlı bir bayan vardı şarkı sözleri (1208b): Yaşlı bir bayan vardı
Sinek yutan yaşlı bir kadın vardı. Neden bu sineği yuttuğunu bilmiyorum. Belki de ölür. Bir örümceği yutan yaşlı bir kadın vardı. Bu kıvrılmış ve sallandı ve içinde çalkalandı. Sinekleri yakalamak için örümceği yuttu, Neden bu sineği yuttuğunu bilmiyorum. Belki de ölür. Kuş yutan yaşlı bir kadın vardı. Bir kuşu yutmak ne kadar saçma. Örümceği yakalamak için kuşu yuttu, Sinekleri yakalamak için örümceği yuttu, Neden bu sineği yuttuğunu bilmiyorum. Belki de ölür. Bir kediyi yutan yaşlı bir kadın vardı. Bunu bir kediyi yutacağınızı düşünün. Kuşu yakalamak için kediyi yuttu. Örümceği yakalamak için kuşu yuttu, Sinekleri yakalamak için örümceği yuttu, Neden bu sineği yuttuğunu bilmiyorum. Belki de ölür. Bir köpeği yutan yaşlı bir kadın vardı. Bir köpek yutmak için ne domuz. Kediyi yakalamak için köpeği yuttu. Kuşu yakalamak için kediyi yuttu. Örümceği yakalamak için kuşu yuttu, Sinekleri yakalamak için örümceği yuttu, Neden bu sineği yuttuğunu bilmiyorum. Belki de ölür. Atı yutan yaşlı bir kadın vardı. Elbette öldü.
10: gettysburg adresi (1452b): Gettysburg adresi ne kadar rastgele
Dört puan ve yedi yıl önce babalarımız, bu kıtada, özgürce algılanan ve tüm erkeklerin eşit yaratılması önerisine adanmış yeni bir ulus ortaya koydu. Şimdi biz büyük bir iç savaşa giriyoruz, o milletin veya bu şekilde tasarlanmış ve çok özel bir ulusun uzun süre dayanıp dayanamayacağını test ediyoruz. Bu savaşın büyük bir savaş alanında karşılandık. Bu alanın bir kısmını adamaya geldik, burada yaşamlarını veren millet için yaşayabilecekleri için son bir dinlenme yeri olarak. Bunu yapmamız gereken tamamen uygun ve doğru. Ancak, daha geniş anlamda, adanamayız, umursamayız, bu zemini yarıya alamayız. Burada mücadele eden, yaşayan ve ölü olan cesur insanlar, ekleme veya düşürme gücümüzün çok üstünde, onu kutladılar. Dünya çok az not tutacak ve ne dediğimizi hatırlayamayacak. ama burada ne yaptıklarını asla unutamaz. Bizim için yaşam, daha doğrusu, burada savaşmış oldukları bitmemiş işlere, bu zamana kadar çok ileri düzeyde olanlara adamaktır. Bizden önce kalan büyük göreve adanmış olmak bizim için daha doğrudur - bu onurlu ölülerden, son adanmışlık ölçüsünü verdikleri bu nedene olan bağlılığımızı arttırdık - bu ölülerin, boşuna vefat etti - bu ulus, Tanrı'nın altında yeni bir özgürlük doğuracak ve halkın hükümeti, insanlar tarafından, insanlar için dünyadan yok olmayacak.
Toplam (sıkıştırılmamış): 6135 karakter / bayt.
İyi eğlenceler!
private static final String RICK_ROLL_RETURN = "We're no strangers to love...