コロナで無職になった私がエンジニアになるまで

コロナの影響で前職をクビになってから、エンジニアを目指してます。

Rubyの練習問題 ~slice応用問題~

問題.1

任意の2つの文字列があります。
どちらかの文字列がもう一方の文字列の最後にある場合はTrueを
ない場合はFalseを出力するプログラムを作りましょう。

条件として、入力された文字が大文字でも小文字でも、同一の文字として処理を行いましょう。
その際、大文字から小文字に変換するメソッドを使用しましょう。

 

[自分の解答]

def end_other(a, b)
  str_a = a.downcase
  str_b = b.downcase

  a_length = str_a.length
  b_length = str_b.length

  if str_a.slice(-(b_length)..-1) == str_b || str_b.slice(-(a_length)..-1) == str_a
    puts "True"
  else
    puts "False"
  end
end

まず与えられる引数をdowncaseで小文字に変換する。
次に文字列の長さを変数にいれる。
条件分岐で、片方の文字列に対してsilceを用いてもう一つの文字列の長さ分を切り取り、それがもう一つの引数と一致すればTrue。
それを2パターン分 || を使って分岐させる。
それ以外はFalseとする。