LeetCodeをRubyで解いてみた(順次更新)

Rubyのコーディングを力を向上させるため、LeetCodeという対策用サイトを利用しています。

初心者のため、まずは難易度「Easy」かつ正答率「50%以上」の比較的優しめの課題を解いていきます。

本記事では、今後復習しやすいよう、LeetCodeの課題をRubyで解き1つの記事に回答をまとめます。

1108Defanging an IP Address

Given a valid (IPv4) IP address, return a defanged version of that IP address.

A defanged IP address replaces every period "." with "[.]".

Example 1:

Example 2:

  • gsubメソッドで文字列置換

参考:Rubyリファレンス-gsub, gsub! (String)

771Jewels and Stones

You’re given strings J representing the types of stones that are jewels, and S representing the stones you have.  Each character in S is a type of stone you have.  You want to know how many of the stones you have are also jewels.

The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so "a" is considered a different type of stone from "A".

Example 1:

Example 2:

709To Lower Case

Implement function ToLowerCase() that has a string parameter str, and returns the same string in lowercase.

Example 1:

Example 2:

Example 3:

832.Flipping an Image

Given a binary matrixA, we want to flip the image horizontally, then invert it, and return the resulting image.

To flip an image horizontally means that each row of the image is reversed.  For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].

To invert an image means that each0is replaced by1, and each1is replaced by0. For example, inverting [0, 1, 1] results in [1, 0, 0].

Example 1:

Example 2:

ポイント

  • mapメソッドをネストすること多次元配列を取り出せる
  • reverseメソッドで配列の順序を入れ替える
  • 三項演算子で0と1を入れ替える

905Sort Array By Parity

Given an arrayAof non-negative integers, return an array consisting of all the even elements ofA, followed by all the odd elements ofA.

You may return any answer array that satisfies this condition.

Example 1:

ポイント

  • pushメソッドで配列の最後に追加
  • unshiftメソッドで配列の最初に追加

977Squares of a Sorted Array

Given an array of integersA sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.

Example 1:

Example 2:

ポイント

  • **でべき乗
  • sortメソッドで昇順に変換

728Self Dividing Numbers

Aself-dividing numberis a number that is divisible by every digit it contains.

For example, 128 is a self-dividing number because128 % 1 == 0,128 % 2 == 0, and128 % 8 == 0.

Also, a self-dividing number is not allowed to contain the digit zero.

Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.

Example 1:

ポイント

  • eachをネストするときはワンライナーでまとめる必要がある
  • charsメソッドで文字列を1文字ずつ取り出す
  • all?メソッドで全てがtrueなら値を返す

1051Height Checker

Students are asked to stand in non-decreasing order of heights for an annual photo.

Return the minimum number of students not standing in the right positions.  (This is the number of students that must move in order for all students to be standing in non-decreasing order of height.)

Example 1:

ポイント

  • each_with_indexメソッドで、元の配列と変換後の配列の比較の際に片方にindexを持たせる
  • countメソッドは配列でも利用できる
  • sortメソッドで配列を昇順にできる(sort.reverseメソッドで降順に)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です