B - Minor Change(ABC172復習)

6月27日に開催されたAtCoder Beginner Contest 172

B問題の復習。

各問題の制約や入力・出力例はリンク先(AtCoderのサイト)へ。

B - Minor Change

問題文
文字列 S, T が与えられます。次の操作を繰り返して S を T に変更するとき、操作回数の最小値を求めてください。
操作:S の 1 文字を選んで別の文字に書き換える

入力
S
T

B - Minor Change

提出したコード

s = gets.chomp
t = gets.chomp
ans = 0
(0..s.size).each.with_index do |n, i|
  if s[i] != t[i]
    ans += 1
  end
end
puts ans

結果:AC(正解) 実行時間:110 ms

s と t で異なっている文字数を数えればいい。

timesを使ったほうがすっきり書けた。

s = gets.chomp
t = gets.chomp
ans = 0
s.size.times do |i|
  if s[i] != t[i]
    ans += 1
  end
end
puts ans

s[0]t[0]、つまり s の 1文字目と t の1文字目が同じでなければ、最終的な答えとなるansに 1 をプラスする。同じ文字であれば何もしない。

それを文字数の回数繰り返し処理する(s と t の文字数は同じなのでどちらでもいい)。

感想

実行速度が遅いと思ったが、一番速い人でも100ms超えてたので、こんなもんなのかな。

メソッド作ったりするのにもチャレンジしていきたい。