マージソートを使って文字列を辞書順を並べる
問題
B: さかさま辞書 - AtCoder Regular Contest 003 | AtCoder
解き方
この問題は以下のステップで解くことができる。
- 全ての単語を前後反転させる
- ソート
- 更に前後反転し元に戻す
Javaの標準のソートメソッドを用いる
Javaには標準でArrays
というクラスあり、ソートメソッドArrays.sort()
が実装されている。このメソッドはジェネリックスを用いて実装されているので、数字以外でもソートが可能である。文字列をソートする場合は勝手に辞書順にソートしてくれる。
文字列を辞書順にソートするメソッドを実装する
Arrays.sort()
の代わりにソートするメソッドを実装してみる。今回はマージソートを使用する。
文字列の辞書比較はStringクラスのcompareToメソッド用いる事で実装することができる。このメソッドの返り値が負の値であれば、レシーバに指定した文字列が辞書的に前にくる値となる。