けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 296 A - Alternately (7Q, 灰色, 100 点)

for 文を回しながら「隣接要素」も同時に見ていく系

問題概要

文字 M, F からなる長さ  N の文字列  S が与えられる。

この文字列中に同じ文字が連続している箇所が存在しないならば "Yes"、存在するならば "No" を出力せよ。

考えたこと

for 文を用いて、文字列  S i 番目の文字 S[i] にアクセスしながら、同時に  i+1 番目の文字 S[i+1] にもアクセスして

S[i] == S[i+1] かどうか

を判定していけばよい。ある  i に対して S[i] == S[i+1] である場合には "No" を出力すればよい。

コード

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

int main() {
    int N;
    string S;
    cin >> N >> S;

    bool res = true;
    for (int i = 0; i + 1 < N; i++) {
        if (S[i] == S[i+1]) res = false;
    }
    cout << (res ? "Yes" : "No") << endl;
}