此题题解
2023-07-26 11:01:42
发布于:广东
17阅读
0回复
0点赞
1.栈的方法:
#include <bits/stdc++.h>
#define MOD 998244353
#define mod 1000000007
using namespace std;
int main()
{
	stack<char>s;
    string str;
    cin >> str;
    for (int i = 0; str[i] != '@'; i++)
    {
        if (str[i] == '(') s.push('(');
        if (str[i] == ')')
        {
            if (s.empty())
            {
                cout << "NO" << endl;
                return 0;
            }
            else s.pop();
        }
    }
    s.empty() ? cout << "YES" << endl : cout << "NO\n";
	return 0;
}
2.统计(和)的个数:
#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	cin >> s;
	int left = 0; 
	int right = 0;
	for (int i = 0; i < s.length(); i++)
	{
		if (s[i] == '(') left++;
		else if (s[i] == ')') right++;
		else if (s[i] == '@') break;
	}
	if (left == right) cout << "YES" << endl;
	else cout << "NO" << endl;
 	return 0;
}
完结!
全部评论 1
请注意:如果你用第二种方法的话,#6 #7 #8 #10 会WA,我也是先用第二种方法的,发现不行就用第一种方法。
2023-07-26 来自 广东
0

有帮助,赞一个