1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【アルゴリズム】JavaScriptで反転問題を解く

Last updated at Posted at 2021-06-12

#はじめに
以前からアルゴリズム系に苦手意識があり、ずっと勉強を後回しにしてきたのですが、このたびQiitaで「競技プログラミング強化月間」が始まったので便乗して勉強してみることにしました。

試しに解いたLeetCodeが解説も意味不明なレベルだったので、もっと優しいレベルの問題を解いて記事にまとめていくことにしました。

JavaScriptでアルゴリズムの勉強をされている方の参考になれば幸いです。
記事を順次まとめていきますので、その他の記事ついてはマイページからご覧ください。

#文字列反転
引数に文字列を与えたときに反転した文字列を返してください。
ex.) reverse('apple') === 'elppa', reverse('hello') === 'olleh', reverse('Greetings!') === '!sgniteerG'

##解答
初期値が空の文字列reversedを用意し、引数の文字列strの文字characterをfor文で先頭から取り出します。
reversedを後ろからcharacterに連結していくことで、反転した文字列reversedが完成します。

index.js
function reverse(str) {
  let reversed = '';

  for (let character of str) {
    reversed = character + reversed;
  }

  return reversed;
}

#回文
引数に与えた文字列が回文だったときにtrue、回文ではなかったときにfalseを返してください。
ex.) palindrome("abba") === true, palindrome("abcdefg") === false

##解答
文字列strsplit('')で文字の配列にした後に、reverse()で配列の順番を反転させ、join('')で再び文字列reversedに戻します。
最後にstrreversedを比較した結果を返します。

index.js
function palindrome(str) {
  const reversed = str.split('').reverse().join('');

  return str === reversed;
}

#整数反転
引数に正負整数を与えたときに反転した正負整数を返してください。
ex.) reverseInt(15) === 51, reverseInt(981) === 189, reverseInt(-15) === -51

##解答
String(n)で引数nを文字列に変換し、回文のときと同様に文字列reverseStrとして反転させます。
記号も含めて反転されてしまっているので、parseint(reverseInt)で正の整数に戻した後、Math.sign(n)nの正負(+/-1)をかけてあげます。

index.js
function reverseInt(n) {
  const reverseStr = String(n).split('').reverse('').join('');

  return parseInt(reverseStr) * Math.sign(n);
}

#参考資料
https://www.udemy.com/share/101WNkCEEZd11VRno=/

1
0
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?