sed はいいよね、と思い出した。んで主に sed でちょっと複雑なことしてるものを。最近どの問題見てもまず sed で解くには…とか考えてる気がする。なんていうかただ解くだけでそれなりにカタルシスが得られて良いです。
- lcs.sed
http://golf.shinh.org/p.rb?LCS#sed
問題文を一部流用するという話。
1h 1d /B/s/....\(.\{32\}\)/\1/ /a/{x s/aa/a/ s/ar/a/} /A\|a/!s/\(.\{51\}\).*/\10100001000001010011010000101000001100000000001111110001001000010101010011001011000111101010000010001101111/
- transpose.sed
http://golf.shinh.org/p.rb?transpose+lines#sed
行と列を入れ替える問題。 emokenさんに1B負けてる。まーちょっと冗長な気はする。
H ${:l g s/\n\(.\).*/\1/gm p x s/^.//gm x tl} d
- way.sed
http://golf.shinh.org/p.rb?show+the+way#sed
あまり解いた覚えがないのだけど、普通に回答埋め込みぽい。これも emoken さんに負けてるなぁ。
s/3/ABC/ s/6/BADCBA/ s/9/DABADCBAB/ s/A/right\n/g s/B/bottom\n/g s/C/left\n/ s/D/top\n/g q
http://golf.shinh.org/p.rb?FizzBuzz#sed
1-100を表示するのだけど、3の倍数はFizzに、5の倍数はBuzzに、15の倍数はFizzBuzzに変える、という問題。 sed でカウンタ作るのは 昔思ってたより はるかに簡単だなぁとい話。倍数の判定はカウンタとは別に ;;;; みたいなのをどんどん増やしていって、この数で判定している。
s/$/@Z;1234566789@01/ :l s/\(.\?\)@\(.*;.*\1\(.0*\)\)/\3\2/ tl h /Z\(;;;\)*1/s/../FizzZ/ s/[^z]*Z\(;;;;;\)*1/BuzzZ/ s/Z.*// p g /00/d s/Z/@Z;/ bl
- janken.sed
http://golf.shinh.org/p.rb?judge+Janken#sed
ジャンケンの判定問題。ボロ負け。まぁこの問題は回答埋め込みだろうなぁ。
s/P[^ ]*/5/g s/Guu\|Rock/0/g s/[A-z]\+/2/g s/5 2\|2 0\|0 5/</ s/\(.\) \1/=/ s/...*/>/
- deldup.sed
http://golf.shinh.org/p.rb?delete+duplicate+lines#sed
重複行を取り除く問題。最初大差ついてたのに負けてるなあ。
G /^\(.*\)\n.*\1/d s/\n.*// H
- palin.sed
http://golf.shinh.org/p.rb?palindromize
はもうちょい様子見ますか。
む、 Perl の方 ySas さんが追い付いてるってことは同じ回答かな。