Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 374 B - Unvarnished Report | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 28

問題概要

英小文字のみからなる文字列  S, T が与えられる。  S T が等しいならば  0 を、そうでないならば異なっている文字のうち先頭のものが何文字目かを出力せよ。

制約

  •  S, T の長さは1以上100以下。

考察

まず、  S = T のときは答えは  0 である。

 S \neq T のときは、先頭から  i 文字目を順に見ていき、

  •  i = |S| \: \mathrm{or} \: i = |T|
  •  S_i \neq T_i

のいずれかに当てはまるならば、その時点の  i を出力して処理を終了すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

// ======================================== //

int main()
{
    string S, T;
    cin >> S >> T;

    if (S == T) {
        cout << 0 << endl;
        return 0;
    }

    int i = 0;
    while (true)
    {
        if (i >= S.size() || i >= T.size()) {
            cout << i + 1 << endl;
            return 0;
        }

        if (S[i] != T[i]) {
            cout << i + 1 << endl;
            return 0;
        }

        i++;
    }
}

atcoder.jp

実装時間: 5分