こんにちは!面白プロデュース事業部のおばらです。
『JS体操』第3問「Zalgo Text の生成」 たくさんの皆様にご参加いただき、ありがとうございました。
hubspot.kayac.com
提出いただいた回答の中で一番文字数が短かったのは以下のコードでした!
🥇 第1位 114文字 by halwhite さん
export default(s,r=Math.random,z=n=>n>0?String.fromCharCode(768+r()*112)+z(n-1):'')=>s.replace(/./g,c=>c+z(r()*8))
再帰を利用したとてもシンプル&スマートなコードです。UNBELIEVABLE♪
実はこの再帰を使う回答は
社内では想定していなかった回答
でした。
事前の社内 QA であらゆるアプローチを検証したつもりだったのですが、いやぁまだこんなアプローチがあったとは。コードを見た後だと、なんか思いつけそうな感じがしてしまうのですが、なかなかどうしてこれが思いつかないのです。ちなみに再帰を使う回答はこの1件のみ。
halwhite さん、素敵な回答をありがとうございます!!感激です。
実は元々運営側で想定していた最短文字数も114文字だったのですが、再帰とは違うアプローチでした。それはまた近日公開予定の解説ブログでご紹介します。
そして、この再帰を使う114文字の(想定外の)回答をJS体操の QA チーム総動員で解析した結果、さらに短くできることが判明しました。
そこで急遽、、、
延長戦を開催します!!
【提出締切】
8/6(火) 23:59:59
【お題】
以下の114文字のコードをさらに短くしてください
export default(s,r=Math.random,z=n=>n>0?String.fromCharCode(768+r()*112)+z(n-1):'')=>s.replace(/./g,c=>c+z(r()*8))
QA チームで検証した限りではあと2文字減らせそうですが、さらに短くできるかも?
第1問 は 44文字
第2問 は「正攻法」が 66文字、「ハック部門」が 33文字 と代々ゾロ目になっているので
第3問 は 111文字 にもしできたらとても嬉しいのですが、、笑
みなさまの挑戦をお待ちしております!
hubspot.kayac.com
JS体操 第3問「Zalgo Text の生成」のおさらい
『JS体操』とは面白法人カヤックが主催する JavaScript のコードゴルフ大会。
その第3問は任意の文字列を「Zalgo Text」に変換する JavaScript の長〜いコードをできるだけ短くする!というお題です。