Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題100

問題100 しりとり順に並べる

問題のファイルは

https://github.com/shellgei/shellgei160

からダウンロードできる。

単語をしりとり順に並べる問題だった。grepを使ってどうにかしようとしたがどうにもならなかった。

解答例は

join -j9 shiritori.txt{,} | grep '\(.\) \1' | tsort 2>/dev/null

となる。join -j9は9行目をキーにするという意味だがここでは1行目以外なら多分なんでもよい。ブレース展開で同じファイルを2回指定して2つの単語の組み合わせをすべて挙げた。そのあとgrepでつながっている単語を抜き出し、トポロジカルソートtsortでソートしてしりとりを構成した。答えが複数あるためエラーが出るのを捨てている。