yuuki blog

プログラミング をアプトプットしています。

Ruby 二つの文字列の順番を揃える

二つの文字列を照合します。片方の文字列を左に一文字づつずらし、二つの文字が何文字で照合するかを出力します。

(例)"tenaha" という文字列を"hatena"にします。 左に2文字ずらすと"hatena"になりますので2を出力します。
入力例

6 hatena tenaha

出力例

2

i = 0
#文字数,照合先の文字列,照合元の文字列を入力します
n,a,b = gets.chomp.split.map(&:to_s)
#文字列を数列に変換します
int = n.to_i
#照合元の文字列を一文字づつの配列に変換します。
bb = b.chars.each_slice(1).map(&:join)
#ループ処理を行い、rotate()で配列を一つづつ左にずらし、.joinで文字列に変換しています。
int.times do
  bbb = bb.rotate(i).join
  if bbb == a
    puts i
    break
  else
    i += 1
  end
end