Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra chuỗi E/N có thể tạo dãy số tròn vòng không bằng C++

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)