ปัญหา
ได้รับสตริงที่ประกอบด้วย 'a' และ 'b' เท่านั้น ตรวจสอบว่ามีรูปแบบ aⁿbⁿ หรือไม่ (n ตัว a ตามด้วย n ตัว b)
ตัวอย่าง
"aaaaaaaaaaaabbbbbbbbbbbb" → True (12 a's, 12 b's)
อัลกอริธึม
- นับจำนวน 'a' ติดต่อกันจากต้นสตริง (i)
- ถ้า 2×i ≠ ความยาวสตริง → False
- ตรวจสอบส่วนที่เหลือว่าทั้งหมดเป็น 'b' หรือไม่
โปรแกรมตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
bool isAnBn(string s) {
int n = s.length();
int i = 0;
while (i < n && s[i] == 'a') i++;
if (i * 2 != n) return false;
for (int j = i; j < n; j++)
if (s[j] != 'b') return false;
return true;
}
int main() {
cout << isAnBn("aaaaaaaaaaaabbbbbbbbbbbb"); // 1
return 0;
}