@johtaniの日記 2nd

@johtani ‘s blog 2nd edition

第1章の00から02までやってみた(言語処理100本ノック)

「鉄は熱いうちに打て」ということで、言語処理100本ノックの第1章の00から02を実装してみました。

さて、これが効率がいいのかどうかはさておき。

00. 文字列の逆順

問題はこちら

最初、Vecのreverse()で逆順にして0からlen()まで回してたんですが、pop()がいい感じに後ろから取れることがわかったんで、切り替えました。 シンプルかな?

01. 「パタトクカシーー」

問題はこちら

1文字ずつ取り出して、インデックスの番号が2で割ってあまりが0なら文字列に追加していくってのでやってみました。 (ブログ書いてるところで、i in 0..char_array.len()じゃなくて、(i, x) in char_array.iter().enumerate()に切り替えました。) matchとか使って綺麗に書けたりするのかなぁ?

02. 「パトカー」+「タクシー」=「パタトクカシーー」

問題はこちら

だいぶ思考錯誤してる感じがソースに現れてます。 とりあえず、両方の文字列をcharsの配列にして個々のイテレータを回しながら、next()の戻り値があれば追加していく感じにして、 終了条件が両方Noneを通ったらにしてるけど、、、 なんか、もっと綺麗にできないのかなぁ。。。 next()のタプル返す関数作って、とかでなんかできたりするかなぁ?

gist-it

関係ないですが、GitHubのコードを貼り付けるのに便利なサービスがあるみたいです。

http://gist-it.appspot.com

これほんと便利だな。行数指定もできるし。 説明するのが簡単だ。

とりあえず、今日はこの辺まで。なんか、いい知恵あれば教えてください!

Comments