[Golang]アルゴリズム学習を学習しよう ~String Reverse~

こんにちは。KOUKIです。

とあるWeb系企業でGoエンジニアをしています。

Golangでアルゴリズムの学習をしましょう!

今回は、任意の文字列を逆順に並び替えるアルゴリズムを考えてみます。

課題

例えば、「Hi, My name is Selfnote!」という文字列が与えられたとします。

この文字列を「!etonfleS si eman yM ,iH」に書き換える(reverse)プログラムを作成しましょう。

ヒント: 文字へのアクセスについて

Golangでは、以下のようにすれば1文字ずつアクセスできます。

ただし、keyword[0]で出力される値はbyte型なので、stringに変換する処理が必要です。

reverse処理の実装

それでは、reverse処理を実装します。

こんな感じですね。実装できたでしょうか?

文字列のアクセスは「0」から始まるのでtotalItemsには「文字列-1」の数値を格納しそれをループで回す、ただそれだけです。

プログラムを実行してみましょう。

OKですね。

もちろん正解は一つではありません。goの組み込みパッケージを使うやり方、別のアルゴリズムで処理するやり方など色々方法はあると思いますので、別の方法でもぜひチャレンジしてみてください。

おわりに

処理は単純ですが、実装しようとすると意外に「あれ?どうやるんだろう?」となる代表的なアルゴリズムです。

アルゴリズムを学べば綺麗なコードが書ける。綺麗なコードがかければバグが少なくなる、保守が楽になる。そして、上級プログラマーになれます^^

頑張ってアルゴリズムを学習しましょう!

それでは、また!

Go記事まとめ

Go記事まとめです

ソースコード

コメントを残す