Mô tả bài toán
Chuỗi S ký tự 'E' (equal) và 'N' (not equal). n số xếp thành vòng. S[i]='E' → a[i]=a[i+1], 'N' → a[i]≠a[i+1] (với a[n]=a[0]). Kiểm tra có gán giá trị thỏa mãn không.
Ví dụ
S="ENNEENE" → True (ví dụ: 15,15,4,20,20,20,15).
Thuật toán
Chuỗi có thể gán được trừ khi có đúng 1 ký tự 'N' (vì vòng tròn, số lượng 'N' phải chẵn hoặc 0). Nếu count('N') == 1 → false, else true.
Code C++
#include <bits/stdc++.h>
using namespace std;
bool solve(string S) {
if (count(S.begin(), S.end(), 'N') == 1)
return false;
return true;
}
int main() {
string S = "ENNEENE";
cout << solve(S) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: "ENNEENE"
Output: 1 (true)