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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP