for
文を回しながら「隣接要素」も同時に見ていく系
問題概要
文字 M, F からなる長さ の文字列 が与えられる。
この文字列中に同じ文字が連続している箇所が存在しないならば "Yes"、存在するならば "No" を出力せよ。
考えたこと
for
文を用いて、文字列 の 番目の文字 S[i]
にアクセスしながら、同時に 番目の文字 S[i+1]
にもアクセスして
S[i] == S[i+1]
かどうか
を判定していけばよい。ある に対して 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; }