C++ 程序检查给定的字符串是不是坏的
假设我们有一个包含 n 个字符的字符串 S。S 包含小写英语字母和 ')' 字符。如果字符串末尾的 ')' 字符数严格大于剩余字符数,则字符串是坏的。我们必须检查 S 是否是坏的。
因此,如果输入类似 S = "fega))))))",则输出将为 True,因为它是坏的,因为有 4 个字母和 6 个 ')'。
步骤
为了解决这个问题,我们将按照以下步骤操作 −
ans := 0 n := size of S i := n - 1 while (i >= 0 and S[i] is same as ')'), do: (decrease i by 1) z := n - 1 - i ans := 2 * z - n if ans > 0, then: return true Otherwise return false
示例
让我们看看以下实现以获得更好的理解 −
#include <bits/stdc++.h> using namespace std; bool solve(string S) { int ans = 0; int n = S.size(); int i = n - 1; while (i >= 0 && S[i] == ')') i--; int z = n - 1 - i; ans = 2 * z - n; if (ans > 0) return true; else return false; } int main() { string S = "fega))))))"; cout << solve(S) << endl; }
输入
"fega))))))"
输出
1
广告