Deletions of Two Adjacent Letters-Codeforces
投稿日: 更新日:
問題リンク-Deletions of Two Adjacent Letters
問題
長さが奇数の文字列が与えられます。長さがになるまで以下の操作を繰り返します。
任意の隣接する2文字をから選び削除する。つまり、に対し任意のに対し操作を行うととなる。
文字列と文字が与えらるので操作終了後とできるか判定してください。
解法
の番目の文字を残すとします。と文字列を示した時、の前後にあるとを削除する必要があります。2個づつ削除できるためどちらも偶数でなければなりません。
したがって、残す文字列の前後が偶数個か判定すれば良いです。
実装
#include <bits/stdc++.h>
using namespace std;
void solve(){
string s;
char c;
cin >> s >> c;
int n = s.length();
int count_l = 0, count_r = n-1;
for(int i = 0;i < n; ++i){
if(s[i] == c){
if(count_l%2 == 0 && count_r%2 == 0){
cout << "YES" << endl;
return;
}
}
count_l++;
count_r--;
}
cout << "NO" << endl;
}
int main(){
int t;
cin >> t;
while(t--){
solve();
}
return 0;
}