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

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

AtCoder ABC 327 A - ab (灰色, 100 点)

文字列の練習!

問題概要

英小文字からなる長さ  N の文字列  S が与えられる。

この文字列  S 中に、文字 'a' と 'b' が隣接する箇所があるかどうかを判定せよ。

考えたこと

for 文を用いて判定していく。添字 i を回していき、

  • S[i] == 'a' and S[i+1] == 'b'
  • S[i] == 'b' and S[i+1] == 'a'

が成り立つようなことがあるかどうかを判定すればよい。

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

int main() {
    int N;
    string S;
    cin >> N >> S;
    
    bool res = false;
    for (int i = 0; i+1 < N; ++i) {
        if (S[i] == 'a' && S[i+1] == 'b') res = true;
        if (S[i] == 'b' && S[i+1] == 'a') res = true;
    }
    
    if (res) cout << "Yes" << endl;
    else cout << "No" << endl;
}