【アルゴリズム】文字列を逆順にする。javascriptで実装してみよう。


これは有名ですね。エンジニアの面接でもよく聞かれると思います。

逆順とは、例えば「hello」→「olleh」にすることです。

単純な解法 

function reverseString(s) {
 var reverseString = "";
 for (let i = s.length - 1; i >= 0; i--) {
   reverseString += s[i];
 }
 return reverseString;
}

バカ正直に解くとこうですね。

再帰版

function reverseStringRec(str) {
 if (str.length <= 1) return str;
 return reverseStringRec(str.slice(1)) + str[0];
}

再帰の場合、スタックには以下のように積まれます。文字列の最後尾まで行くのに注目してください。スタックから戻る時に、str[0]で最初の文字だけ連結していきます。

ello
llo
lo
o

実践版

function reverseString(str) {
 return str
   .split("")
   .reverse()
   .join("");
}

仕事だと、これが求められるかもしれません。誰が見てもわかりやすいですね。


この本は夢中になって読めると思います。なんせ、世の中を支えているアルゴリズムが出てくるのですから。公開鍵暗号方式の章は必読。


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

1

S ⚡️

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。