假设,我们有一个字符串,它只由两个字母 a 和 b 组成。我们必须找出字符串是否为 anbn 形式,或者换句话说,它包含 n 个 a 和 n 个 b。如果为真,我们返回 1,否则返回 0。
因此,如果输入类似于“aaaaaaaaaaaabbbbbbbbbbbb”,那么输出将为真。
让我们看看以下实现以获得更好的理解 -
#include <bits/stdc++.h> using namespace std; bool solve(string input_string) { int length = input_string.length(); int i; for (i = 0; i < length; i++) if (input_string[i] != 'a') break; if (i * 2 != length) return false; for (int j = i; j < length; j++) if (input_string[j] != 'b') return false; return true; } int main() { string input_string = "aaaaaaaaaaaabbbbbbbbbbbb"; cout << solve(input_string)<< endl; return 0; }
"aaaaaaaaaaaabbbbbbbbbbbb"输出结果
1