6月27日に開催されたAtCoder Beginner Contest 172。
B問題の復習。
各問題の制約や入力・出力例はリンク先(AtCoderのサイト)へ。
B - Minor Change
問題文
文字列 S, T が与えられます。次の操作を繰り返して S を T に変更するとき、操作回数の最小値を求めてください。
操作:S の 1 文字を選んで別の文字に書き換える入力
S
T
提出したコード
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超えてたので、こんなもんなのかな。
メソッド作ったりするのにもチャレンジしていきたい。