Đầu ra, Lorem ipsum, với số lượng ký tự tối thiểu


16

Tôi nhớ mọi người nói rằng kích thước mã nên được đo bằng byte, chứ không phải bằng ký tự, bởi vì có thể lưu trữ thông tin với các ký tự Unicode kỳ lạ, không có ý nghĩa trực quan.

Thật là tệ?

Trong thử thách này, bạn nên xuất văn bản Lorem Ipsum sau đây, được lấy từ Wikipedia :

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Vui lòng chỉ định số lượng ký tự (không phải byte) trong mã của bạn. Mã với số lượng ký tự tối thiểu chiến thắng.

Mã của bạn chỉ nên chứa các ký tự Unicode hợp lệ, như được mô tả ở đây , đó là:

  • Mã điểm lên tới U + 10FFFF
  • Không có người thay thế (phạm vi DB800 D800 phạm vi bị cấm)
  • Không có ký tự FFFE và FFFF
  • Không có ký tự null (mã 0)

Nếu mã của bạn không thể được hiển thị, hãy cung cấp một phiên bản với các ký tự vi phạm được xử lý lại và một hexdump.

Một số lưu ý:

  • Đầu ra phải là một dòng dài (445 ký tự). Nếu hệ thống của bạn không thể làm điều đó (ví dụ: bạn đang in nó trên giấy), hãy đưa ra một xấp xỉ gần nhất. Trailing linebreak không quan trọng.
  • Các hàm tích hợp tạo văn bản Lorem Ipsum không được phép
  • Vui lòng chỉ định mã hóa văn bản hợp lệ cho mã của bạn, nếu có liên quan

2
Đáng buồn thay =lorem()trong MS Word không xuất ra phiên bản phù hợp
BlackCap

4
3 câu trả lời cho đến nay chỉ định byte. Methinks một số người có thể chưa đọc thử thách
Robert Fraser

@RobertFraser: Trong trường hợp của tôi, nó không có sự khác biệt là 1 byte = 1 char, vì vậy tôi cũng có thể chỉ định các byte là tiêu chuẩn. Nếu tôi đã kiếm được bất kỳ bằng cách sử dụng ký tự, tôi sẽ chỉ định như vậy :) Khá chắc chắn điều tương tự cũng đúng với các câu trả lời khác.
Emigna

1
Được phép thực hiện một yêu cầu http?
Master_ex

2
Cảm giác này giống như một bản sao của thử thách này vì không có bất kỳ mẫu nào trong văn bản?
FryAmTheEggman

Câu trả lời:


6

APL Dyalog , 123 ký tự

Tất cả trừ giai đoạn cuối cùng được đóng gói thành 111 ký tự 32 bit (UTF-32).

'.',⍨80DR'𦽌򒁭󗕳󆽤𲁲𒁴󇑥󦽣񆍥𧕴򖑡𷍩􆝮񆥬񗌠󶐠񖥥񆽭󖕴􇉯򖍮񖑩񒁴𖰠񗉯􇑥󶱯󒁥𖹧򖱡󦅵􇑕󖥮􆑡򖹩񗘠󖅩񗄠󢁳𧑳񒁤𷉥񆅴􆹯𖱬􆽣󶉡􇍩򗍩􇑵𖥬􇁩񒁸󶌠񆽭󶌠𖕳󧑡򗕄񖄠򒁥񗉵󆽤򒁲񗈠򆕲񖑮􇑩񢁮􇕬񗑡󆕶񒁴􆕳󆱩񂁭𦽬񖔠񷕦􇑡󆱵𗀠񆅩􂹲񖍸񖕴򗌠󲁴񖅣􇑡򗁵𗑡󶸠𧀠񖑩􂱴񆹵􆹩􆱵񗄠񦼠򖍩񖐠񗉥󒁴򖱬󦄠򒁭𶔠𖰠񗉯'

'.',⍨ thời gian gắn vào

80⎕DRký tự 8 bit ( 8) ( 0) D ata R xuất hiện của

'... '111 ký tự Unicode U + 26F4C 9206D D7573 C6F64 32.072 12.074 C7465 E6F63 46365 27574 96461 37369 10676E 4696C 57.320 F6420 56.965 46F6D D6574 10726F 9636E 56.469 52.074 16C20 5726F 107.465 F6C6F D2065 16E67 96C61 E6175 107.455 D696E 106.461 96E69 57.620 D6169 57.120 E2073 27.473 52.064 37.265 Một cách để xảy ra khi đó. F6E20 27020 56469 102C74 46E75 106E69 106C75 57120 66F20 96369 56420 57265 D2074 96C6C E6120 9206D 36520 16C20 5726F, tất cả đều nằm trong phạm vi 12074 Ném10756C và do đó nằm trong phạm vi được phép của OP 10000 1000010FFFF.


14

JavaScript (ES7), 326 283 273 249 243 242 ký tự

_=>"򾍮󂙙󱤭󕜛񟉝񚫎󸦘󏇌󻮾󪕍򦙜񴫰𭙝𧇍񛜃򧮖󓔽򅬸󪙗񴦲񿫽񟮩򺥸󫡽񛜕󖷉󂨗񢕕򦯊񗮣󌫉񣔶򥹖񟷗򢫂󧩜񝼜󾿍񙇛񴮪󼬗񟪵񥦘񝕋󖹜񝹜򢟝񚪲󧩙񙁪񛌖󆆸񛌗󳭞񧔍􄮉񧮮񜭾󫤭󕜛񜫩󫬻򄗗񻭲󺙗񟼕􆞪󻤿򅙝𯎎񛉕򹤭󕜛򀿉򏨒񧔷􅚪񞕛򢮾󪂌򆞮􆴼򥾩󓆊򃅝񛏙򣕝񧔷󕴹󮉍򅾢󷫽񜫩񷪹񢝞򢜏򌦒񢖮󳭾󏔶󕚲󺕗򥤲񸾝񝕋󖿇"[r='replace'](/./gu,c=>(c.codePointAt()-4**8).toString(32))[r](/\d/g,d=>"  , exum. ".substr(d,2))[r](/^.|\. ./g,x=>x.toUpperCase())

Làm thế nào nó hoạt động

Bước đầu tiên trong kỹ thuật nén của tôi là chuyển đổi toàn bộ chuỗi thành chữ thường (không bắt buộc, nhưng trông đẹp hơn) và thay thế từng cặp ký tự trong , exum. (cũng như không gian theo dõi) bằng chỉ mục của nó trong chuỗi cộng 2. Điều này làm cho văn bản là một số cơ sở hợp lệ 32:

lorem9ips69dolor9sit9amet2consectetur9adipiscing3lit2sed9do3iusmod9tempor9incididunt9ut9labore3t9dolore9magna9aliqua8ut3nim9ad9minim9veniam2quis9nostrud94ercitation9ullamco9laboris9nisi9ut9aliquip943a9commodo9consequat8duis9aute9irure9dolor9in9reprehenderit9in9voluptate9velit3sse9cill69dolore3u9fugiat9nulla9pariatur84cepteur9sint9occaecat9cupidatat9non9proident2sunt9in9culpa9qui9officia9deserunt9mollit9anim9id3st9laboru7

Bước tiếp theo là chuyển đổi mỗi lần chạy 4 char thành số thập phân, sau đó lấy ký tự tại điểm mã đó. Điều này có thể được thực hiện với chức năng sau:

f=s=>s.replace(/..../g,x=>(n=parseInt(x,32),String.fromCharCode(0xD800+(n>>10),0xDC00+(n&0x03FF))))

( Lưu ý: Vì tất cả các chữ số là 2 hoặc lớn hơn, giá trị tối thiểu có thể có của bốn chữ số là 2222₃₂. Điều này bằng 95978₁₀ hoặc 176EA₁₆; do đó, các điểm mã sẽ không bao giờ nằm ​​trong phạm vi bị hạn chế.)

Và bây giờ chúng ta có chuỗi nén của chúng tôi:

򾍮󂙙󱤭󕜛񟉝񚫎󸦘󏇌󻮾󪕍򦙜񴫰𭙝𧇍񛜃򧮖󓔽򅬸󪙗񴦲񿫽񟮩򺥸󫡽񛜕󖷉󂨗񢕕򦯊񗮣󌫉񣔶򥹖񟷗򢫂󧩜񝼜󾿍񙇛񴮪󼬗񟪵񥦘񝕋󖹜񝹜򢟝񚪲󧩙񙁪񛌖󆆸񛌗󳭞񧔍􄮉񧮮񜭾󫤭󕜛񜫩󫬻򄗗񻭲󺙗񟼕􆞪󻤿򅙝𯎎񛉕򹤭󕜛򀿉򏨒񧔷􅚪񞕛򢮾󪂌򆞮􆴼򥾩󓆊򃅝񛏙򣕝񧔷󕴹󮉍򅾢󷫽񜫩񷪹񢝞򢜏򌦒񢖮󳭾󏔶󕚲󺕗򥤲񸾝񝕋󖿇

Đó là 445 ký tự nén thành 106 ký tự. Việc giải nén đơn giản là đảo ngược quá trình này:

  1. Chuyển đổi từng char thành điểm mã của nó trong cơ sở 32, trừ 65536.
  2. Thay thế mỗi chữ số nbằng " , exum. ".substr(n,2).
  3. Chuyển đổi từng chữ cái sau một khoảng thời gian hoặc ở đầu chuỗi thành chữ hoa.

Tính năng ES7 duy nhất được sử dụng là **. Thay thế 4**8bằng 65536để chạy trong trình duyệt chưa hỗ trợ ES7.


Nếu bạn sử dụng ES7, bạn có thể sử dụng 4**8thay vì 65536.
mbomb007

@ mbomb007 Cảm ơn. Có lẽ điều đó cũng sẽ có ích trong các thử thách khác
ETHproductions

8

bash + coreutils + gzip + recode, 191 ký tự

echo -ne "ᾋࠀ㰟퍗\03㖐셱䌱ࡄ戋⪒宮⦀⃬〣ख़ʏ쬏湂삲מּ浊莎ᔍ얪䴬畐Ꮏ肭⽡តप㩴뇶ᮤ樶鞔岀梬昅⹭盖ꈥ먣Ვ빓ỢꞴꃑ괓꣪㷨삗䎺뛔䛓ﵸ摉篨䊷૤⦓헉픺ꉖ橬ꟲỒꗻ퉋則ใ⢍럴摧耼񸺷⒅୴䘺㦳櫇鐱窑駁愵䚞鎴鍉Ⅻक़毽➔脂ힸ⤹喝葁㎋頇㺞ⳃ┶왤惌⒜猜䌋吏젔掚ᛩ鯢⚕䜹鴛皽⨫ꇈ銹믍䄛逦軵융󌒣杻龇븁\0"|recode u8..utf16be|tr -d ٣ܣ|gunzip

Chuỗi là gzip của văn bản được hiểu là UTF-16BE, cộng với một vài byte bổ sung để ghép với các nửa thay thế không ghép cặp. Các tr dải ra khỏi một nửa thay thế thêm.

Tệp script này (hoặc shell mà lệnh này được gõ) sẽ diễn giải văn bản là UTF-8, đó là lý do tại sao cần phải mã hóa lại.


Chào mừng đến với PPCG! Bài đăng đầu tiên rất hay! Tuy nhiên, chúng tôi đếm mọi thứ theo byte ở đây. Lấy làm tiếc.
Rɪᴋᴇʀ

6
Câu hỏi này tạo ra một ngoại lệ rõ ràng cho điều đó, trong đó nêu rõ "Vui lòng chỉ định số lượng ký tự (không phải byte) trong mã của bạn" và thảo luận về các ký tự Unicode nào được phép.
dùng59468

1
Tôi là một thằng ngốc. Xin lỗi vì điều đó. > _>
R

2
Không có vấn đề gì, tôi cá rằng các ký tự byte byte là một lỗi phổ biến đối với các câu hỏi khác.
dùng59468

8

Javascript (ES6), 261 255 254 ký tự

Đã lưu 1 byte, nhờ vào ETHproductions

_=>'L'+"⫒㠰拳␰䨒堵̎⨦W䙨ⅶ嵷˘㥆姳䗨⠬巯堡Ŋɩ懪䨶尩个˒≎㥎䜩怷㰷䤆ŵ̊㹩⫒ᨠᩌ㳠抮f̅㩊ᠰ䀩㩎搰㩊ئ抠ˮ婱拗⠩啺巨㬆ɒ㸘∦㰲䤆姵㩀Ƕ̘㨆㬴⠳⠺…䈲䥒䤠⫱᬴w㬣ᠶ⬘嗠⫘䥀噯䗠⫀⫓䕭啩̎Ɏ㹹庘⬆⭀巯奠Ŷ㷨䌯䥀噯⠪ⰸ㦸̆㼱ï哳峮૘梠䵨慷堵幎≠⣨峨愠◳ᬆ䐷ɒ䫓⥎ܑ拠̑Ɏ㼨ó㬴⹠⇫î奩拊̑㹰巯䓠ȮŎ廪ᨀ噧ਸ".replace(/./g,c=>(s=" ,.DEUabcdefghilmnopqrstuvx")[(c=c.charCodeAt()-32)&31]+s[c>>5&31]+s[c>>10])

Phá vỡ

Tải trọng: 148 ký tự Unicode
Mã: 107 byte

Làm thế nào nó hoạt động

Trước tiên, chúng tôi xóa phần dẫn đầu 'L'khỏi thư gốc để chúng tôi còn lại với 444 = 148 * 3 ký tự.

Không có người dẫn đầu 'L', bộ ký tự được tạo thành từ 27 ký tự sau:

" ,.DEUabcdefghilmnopqrstuvx"

Mỗi nhóm gồm 3 ký tự được mã hóa thành:

n = 32 + a + b * 32 + c * 32^2

trong đó a, b và c là các chỉ số của các ký tự trong bộ ký tự trên.

Điều này dẫn đến một điểm mã Unicode trong phạm vi U + 0020 đến U + 801F, kết thúc ở đâu đó trong "Các tư tưởng thống nhất của CJK".

let f =
_=>'L'+"⫒㠰拳␰䨒堵̎⨦W䙨ⅶ嵷˘㥆姳䗨⠬巯堡Ŋɩ懪䨶尩个˒≎㥎䜩怷㰷䤆ŵ̊㹩⫒ᨠᩌ㳠抮f̅㩊ᠰ䀩㩎搰㩊ئ抠ˮ婱拗⠩啺巨㬆ɒ㸘∦㰲䤆姵㩀Ƕ̘㨆㬴⠳⠺…䈲䥒䤠⫱᬴w㬣ᠶ⬘嗠⫘䥀噯䗠⫀⫓䕭啩̎Ɏ㹹庘⬆⭀巯奠Ŷ㷨䌯䥀噯⠪ⰸ㦸̆㼱ï哳峮૘梠䵨慷堵幎≠⣨峨愠◳ᬆ䐷ɒ䫓⥎ܑ拠̑Ɏ㼨ó㬴⹠⇫î奩拊̑㹰巯䓠ȮŎ廪ᨀ噧ਸ".replace(/./g,c=>(s=" ,.DEUabcdefghilmnopqrstuvx")[(c=c.charCodeAt()-32)&31]+s[c>>5&31]+s[c>>10])


console.log(f())


5

05AB1E , 319 byte

Sử dụng mã hóa CP-1252.

•9y†QHÚSe²ŒÓdéÓ#ǧÖN›Íˆž4GÏóREØån‡·JîÁØ£ÎÁ¥evÑRZ¶—¥1RËÒÆzçå"UNé¨v¯ÊcŒÔÝjðtrœÛeã&“SÁxÌ4Þá1N$ù?T(çÛbŸœfó˜lUž}Þß-©ÃMšBÈÑPàê#jÇÐ+n¼BDFý>–¸äFT×›qÜY³ö9ªòËùˆA‡¾p=‘¤ÚÞ{I¶Œ±Ål#¨5´Aq˜Àž,s<*Ï;‡õã¾»ðŽL´ÅuØö+Xi+S>»/8Kã~WΔƒß”¤µðWluØa'cUÐeà¥ä…ž+œ6*0RU£›aÝQ_ñœoþÏð””Þã7ã¨sŒV`_É-´éÄèÆd¦úE5Í^Aá,‘‡™™¢äTHä0¥3±.}Søg•36B0„. :™J'yð:'z',:'.«

Giải thích chuỗi sau đây dưới dạng số 36 cơ sở và mã hóa vào cơ sở 214

LOREMYIPSUMYDOLORYSITYAMETZYCONSECTETURYADIPISCINGYELITZYSEDYDOYEIUSMODYTEMPORYINCIDIDUNTYUTYLABOREYETYDOLOREYMAGNAYALIQUA0UTYENIMYADYMINIMYVENIAMZYQUISYNOSTRUDYEXERCITATIONYULLAMCOYLABORISYNISIYUTYALIQUIPYEXYEAYCOMMODOYCONSEQUAT0DUISYAUTEYIRUREYDOLORYINYREPREHENDERITYINYVOLUPTATEYVELITYESSEYCILLUMYDOLOREYEUYFUGIATYNULLAYPARIATUR0EXCEPTEURYSINTYOCCAECATYCUPIDATATYNONYPROIDENTZYSUNTYINYCULPAYQUIYOFFICIAYDESERUNTYMOLLITYANIMYIDYESTYLABORUM

Sau đó chúng tôi

36B                      # encode back into base 36
   0„. :                 # replace 0 with ". "
        ™J               # convert to titlecase and join
          'yð:           # replace "y" with <space>
              'z',:      # replace "z" with ","
                   '.«   # add a "." at the end

Vì một số lý do, mã hóa không hoạt động với 0 ở cuối, đó là lý do tại sao cần một trường hợp đặc biệt cho ".".

Hãy thử trực tuyến!


Tôi nghĩ rằng bạn có thể thay thế YZdo 12và tiết kiệm một vài byte. Cũng có thể sắp xếp lại 0, 1 và 2 để thoát khỏi trường hợp đặc biệt bí ẩn?
anatolyg

@anatolyg: tiếc là không. Bất kỳ chữ cái nào cũng được tính là ngắt từ, sẽ gây rối với vỏ tiêu đề.
Emigna

5

PHP, 247 ký tự

sự kết hợp của 2 phiên bản trước

echo gzuncompress(base64_decode(mb_convert_encoding("敊眱歍䙸兺䕉剆癚䅪礯極南慷潧楏㡷䥷汚䅯⽌䐸灐扫䱁獶猫扅煄橨啎硡灎䱈噑䔷⭂牓㥨䘴㡊䭪瀰獦夷灇漲氵剣杇楳婧啵扥卹摴慩䩢潪䡊圫啨㝩氷卧ぢご煏潪㙍䍮儷焲ㅅ扔⽘桭卥㉇别桃琫啺䍵公欹塊ㅔ煩噭灳氯䥥ぱ堷ぱ⭫橨祇啂灶㙣浵䅈湋䐷硴卑潘㙉砰捭塖橩汪祲昰䥪佄㔸晔慯眸䨲歮欰䱗䕲䑗⭫㡯䅷塏畃猵⭪慅兔佌流晥塹穄䩔扇婇䑍䩊硺䡅䵌⭤㝉䙇佡䙵浢㑩慖剺湱潊ぢ摰㝋卩楹婏㕵猷灴ぁ慫楗倹捙ㄲ⽁䍧塋啊","UTF-16")));

PHP, 261 ký tự

echo mb_convert_encoding("䱯牥洠楰獵洠摯汯爠獩琠慭整Ⱐ捯湳散瑥瑵爠慤楰楳捩湧⁥汩琬⁳敤⁤漠敩畳浯搠瑥浰潲⁩湣楤楤畮琠畴慢潲攠整⁤潬潲攠浡杮愠慬楱畡⸠啴⁥湩洠慤楮業⁶敮楡洬ⁱ畩猠湯獴牵搠數敲捩瑡瑩潮⁵汬慭捯慢潲楳楳椠畴⁡汩煵楰⁥砠敡⁣潭浯摯⁣潮獥煵慴⸠䑵楳⁡畴攠楲畲攠摯汯爠楮⁲数牥桥湤敲楴⁩渠癯汵灴慴攠癥汩琠敳獥⁣楬汵洠摯汯牥⁥甠晵杩慴畬污⁰慲楡瑵爮⁅硣数瑥畲⁳楮琠潣捡散慴⁣異楤慴慴潮⁰牯楤敮琬⁳畮琠楮⁣畬灡ⁱ畩晦楣楡⁤敳敲畮琠浯汬楴⁡湩洠楤⁥獴慢潲畭.","UTF-16");

Mã hóa $ s chứa chuỗi

foreach(str_split(bin2hex($s),4)as $c)eval('echo"\u{'.$c.'}";');

Phiên bản cũ PHP, 386 Byte | Ký tự

echo gzinflate(base64_decode("NZDBcUMxCERb2QI8v4rklmsKIIjvMCMJWQKPyw/KT25CwLL7PmxKg44VDcWqTSx1UBO/ga0vYRePCSo6dLH2O6RqNpeUXIBorGYFLm3ksnbWoiW6IxyVvlIe4pe0oNG9E6jqI+jAp0O6ttRG0/14ZknthkfoQrflMwrkJZPVydU6olZqbJfyHtKl+9KvpI4chlAab+nJrgB5yg+8bUkKF+iMdHJl1Y4pY8q39CIzg+fH02qMPCdpJ5NC1hKw1vpPKAMFzrgrOfo2hEEzi5gH3l8swyU2xmRgzCSccxxDC/neyBRjmhbpm+ImlUc56qCdG3aeykoosmTubrO6bdAGpIlj/XGNdvwA"));

4

C #, 337 333 331 ký tự

_=>{var q="";foreach(var c in"潌敲彭灩畳彭潤潬彲楳彴浡瑥弬潣獮捥整畴彲摡灩獩楣杮敟楬ⱴ獟摥摟彯楥獵潭彤整灭牯楟据摩摩湵彴瑵江扡牯彥瑥摟汯牯彥慭湧彡污煩慵弮瑕敟楮彭摡浟湩浩癟湥慩Ɑ煟極彳潮瑳畲彤硥牥楣慴楴湯畟汬浡潣江扡牯獩湟獩彩瑵慟楬畱灩敟彸慥损浯潭潤损湯敳畱瑡弮畄獩慟瑵彥物牵彥潤潬彲湩牟灥敲敨摮牥瑩楟彮潶畬瑰瑡彥敶楬彴獥敳损汩畬彭潤潬敲敟彵畦楧瑡湟汵慬灟牡慩畴ⅲ䕟捸灥整牵獟湩彴捯慣捥瑡损灵摩瑡瑡湟湯灟潲摩湥ⱴ獟湵彴湩损汵慰煟極潟晦捩慩摟獥牥湵彴潭汬瑩慟楮彭摩敟瑳江扡牯浵ਡ")q=q+(char)(c&255)+(char)(c>>8);return q.Replace("!",".").Replace("_"," ");};

-4 ký tự bằng cách thay thế .s sau "pariatur" và "labum" bằng !trước khi kết hợp các ký tự thành các ký tự rộng và thêm một dòng mới.

-2 ký tự bằng cách gán lại var đầu ra thay vì nối thêm +=.

Làm thế nào nó hoạt động:

Chuỗi lorem ipsum được chuyển đổi thành mớ hỗn độn đó bằng cách thay thế .với !, với _vì vậy khi ký tự ascii được đặt cạnh nhau để tạo ra một char rộng mỗi char rộng là một nhân vật duy nhất.

/*Func<object, string> Lorem = */ _=> // unused parameter
{
    // Output var
    var q = "";

    // Enumerate each wide char
    foreach (var c in "潌敲彭灩畳彭潤潬彲楳彴浡瑥弬潣獮捥整畴彲摡灩獩楣杮敟楬ⱴ獟摥摟彯楥獵潭彤整灭牯楟据摩摩湵彴瑵江扡牯彥瑥摟汯牯彥慭湧彡污煩慵弮瑕敟楮彭摡浟湩浩癟湥慩Ɑ煟極彳潮瑳畲彤硥牥楣慴楴湯畟汬浡潣江扡牯獩湟獩彩瑵慟楬畱灩敟彸慥损浯潭潤损湯敳畱瑡弮畄獩慟瑵彥物牵彥潤潬彲湩牟灥敲敨摮牥瑩楟彮潶畬瑰瑡彥敶楬彴獥敳损汩畬彭潤潬敲敟彵畦楧瑡湟汵慬灟牡慩畴ⅲ䕟捸灥整牵獟湩彴捯慣捥瑡损灵摩瑡瑡湟湯灟潲摩湥ⱴ獟湵彴湩损汵慰煟極潟晦捩慩摟獥牥湵彴潭汬瑩慟楮彭摩敟瑳江扡牯浵ਡ")
        // Split each wide char into two ascii chars
        q = q + (char)(c&255) + (char)(c>>8);

    // Restore the replaced periods and spaces
    return q.Replace("!",".").Replace("_"," ");
};


2

MATL , 354 ký tự

'8 sxAI($ltZ>2<xa`vYf:s2e9]c&^KtD%e{C*XEpQ]]>dwmi>2;{sUCIZ{V(}Yj 7K&)|,%JD/Pz^:3$*@vVJw)4pgvz4s_$,%pVGu~|PS/Qr7pz5Z2[VV{Lyq}{l!yGiKNg.zFJxL75 sT1]eL2f3iVe~11!|6c+O9.kMWFQYvEp^w0p oH,?Ey"nbV>0g`#)kqTq""" z_AYmyJutvg:o9&AT{#(<42wu.b7" QoOn\#])]ISdH$yc{eM> .[~/`"#2:7C4Mk@eRW8L*_!xjo\cO)!LHK=g:P?&Uc];KdnE(%K7J-z9:7&rhxHl/KZ8\t_C|rT#%28[%+#u.?'F2Y2' ,.DEL'hZa

Điều này giải mã từ cơ sở 94 (sử dụng các ký tự ASCII có thể in được ngoại trừ trích dẫn đơn; do đó chỉ sử dụng các ký tự Unicode tối đa 126) cho bảng chữ cái của các ký tự được yêu cầu, được hình thành bởi hầu hết các chữ cái viết thường, một số chữ cái viết hoa, dấu cách, dấu phẩy và dấu chấm.

Phải mất vài giây trong trình biên dịch trực tuyến.

Hãy thử trực tuyến!


2

JavaScript (ES5), 342 ký tự

c="remo ipsudlta,cngbq.UvxDhfE";"L"+"Qq©Úu[Qsx7Ķz`¾ƅ&Øxø§Ëƴ%ţ¾÷öm¿Zw¥ſøûƠtĭĚǎmĭöđnŔơxēǮŗĭ*x÷;ƚ:ȸƚņţǮ{XĩámɓŏƙâĚDUĚǎÁƚÂtĭŎݦ1mňŽ8ZUŽƜ-äļÝÁŌĪqu[Qqƙ¢3*ôĭ[ÞĵĪ%mÄſĘÚu[Q#èĭƝĘň®ŏØȅ˔Ż­#ÂƠoƈŅƆĭƂ§ÿĵĭƘƙ¢VôƠţÅƠqƙƂĔňǮjʨſňô¾Ơn[ēĭœq÷\"ĭĚǎI".split('').map(function(x){y=x.charCodeAt(0);return c[~~(y/27)]+c[y%27]}).join('')

Khá đơn giản, vì vậy tôi chắc chắn có chỗ để cải thiện. Tôi đã mã hóa mọi cặp ký tự đầu ra dưới dạng một ký tự Unicode.


1
Bạn có cần var ?
Paul Schmitz

Điểm tuyệt vời, tôi đã loại bỏ những nhân vật phụ đó. Cảm ơn!
Eric Dobbs

Nếu bạn sử dụng ES6, thay thế join('')bằng join``. Nếu không, hãy thay đổi ngôn ngữ của bạn thànhJavaScript (ES5)
Paul Schmitz

Tôi nghĩ bạn có thể làm y/27|0hơn là ~~(y/27)để lưu hai byte. Bạn cũng có thể loại bỏ 0trong x.charCodeAt(0).
Sản phẩm ETH

Ngoài ra, .split('').map(function).join('')có thể.replace(/./g,function)
ETHproductions

1

Thạch , 300 ký tự (không cạnh tranh?)

“ḊḄr⁷ƤⱮx#y&Ọ¬½ẇṾƤẋRṠỊ/IṗIÞƝỊż,CA~ñ;ßɦ4ṿḷNVẸẆ`°ṄjJ⁽Ɱ!Æḋ"uƒ⁽ƙfƈÇœƓ®ḶẓƭƊȮ⁻w}Ġṙ(1€CÐ-ɼ#ȯjėȮoZœ°ȥạ_ẊƊaʠiẸṂṪẒ$ċⱮiẹOṠBṇḲ^*GƓŒA>żıWṭƤe&ėẠF6³ṂḲzlçÇṪġṂŻỵḢ⁴WJC⁽Ỵihıỵṃ¥ẏƬEỴ⁽#ḍʠḢ*^O[4)ỵZ5VoPĠƘṙḅß]<œ/ṅẸ% ḍ"Ɱ+¢¦ß÷⁵Ḍ³Ṅ¶2X|©dċÆṁḢƭṗM°`KǦɗỤɱṆȯƘkṅbṙ⁻l<t,ḟȮạżæ€ṠṣIȥCṘƥṁ©53ẒþØŻṁ£æƥ?¬ṿFæṘ⁴nụ’ṃ“Lrem ipsudlta,cngbq.UvxDhfEo

Hãy thử trực tuyến!

Mã hóa là Jelly .

Nhờ các chuỗi được nén, tôi có thể nén nó bằng 3 byte.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.