この問題は、ハミング距離と呼ばれる超重要概念!
問題概要
2 つの長さが等しい文字列 が与えられる。次の操作を繰り返して を に変更するとき、操作回数の最小値を求めよ。
操作: の 1 文字を選んで別の文字に書き換える
制約
考えたこと
に対して、
- の 文字目が異なるならば、答えに 1 増やす
- 等しいならば、特に何もしない
と考えればよいでしょう。下のように、for
文を用いて実装できます。
コード
#include <bits/stdc++.h> using namespace std; int main() { string S, T; cin >> S >> T; int res = 0; for (int i = 0; i < S.size(); i++) { if (S[i] != T[i]) res++; } cout << res << endl; }