回文かどうかを判定する関数を書きたくなりまして、goで実装してみました。
回文 - Wikipedia
さくっとかけてしまったのでなんパターンか書いてみて一番早い書き方を探ってみました。
近頃仕事でJVM言語を書く機会が多いので、久々に違う言語でかくと楽しいもんですよねー
実装案
以下の4実装で比較してみました
- reverseして元の文字列と比較
- 文字列を最初/最後 => 2番目/後ろから2番目 => ...で比較
- ↑をutf8モジュールを使って実装
- ↑をutf8モジュール+rangeで回す実装
結果
というわけでutf8モジュール+rangeで回す実装が一番早いみたいです。
もっと良い実装を思いついた方がいましたら、ぜひ教えてください。