C ++中的GFG括号检查器问题给出错误答案

Posted

技术标签:

【中文标题】C ++中的GFG括号检查器问题给出错误答案【英文标题】:GFG Parenthesis Checker problem in C++ giving wrong answer 【发布时间】:2020-11-10 17:04:12 【问题描述】:

GFG 括号检查器在测试用例“[][]”中显示错误答案,但是当我使用自定义测试用例时,它显示正确答案。我的代码没有出错。 这是我的 C++ 代码。

#include <bits/stdc++.h>
using namespace std;

int main()

    int t;
    cin >> t;
    while(t--)
        string s;
        cin >> s;
        int l = s.length();
        stack<char> stq;
        int flag = 0;
        for (int i = 0; i < l; i++)
            if (s[i] == '(' || s[i] == '' || s[i] == '[')
                stq.push(s[i]);
            else if (!stq.empty() && s[i] == ')' && stq.top() == '(')
                stq.pop();
            else if (!stq.empty() && s[i] == ']' && stq.top() == '[')
                stq.pop();
            else if (!stq.empty() && s[i] == '' && stq.top() == '')
                stq.pop();
            else
                cout << "not balanced" << endl;
                break;
                flag = 1;
            
        
        if (flag == 0)
            if (stq.empty())
                cout << "balanced" << endl;
            else
                cout << "not balanced" << endl;
        
    
    return 0;

问题的链接是https://practice.geeksforgeeks.org/problems/parenthesis-checker/0#

【问题讨论】:

How to debug small programs 【参考方案1】:

您的代码多次打印“不平衡”。

Input
2
[][]

Output
not balanced
not balanced
not balanced
balanced

您为什么不编写一个函数来检查有效的括号并返回真或假?这样会很简洁。

【讨论】:

谢谢你,我有这个问题。我只是在更改标志的 clvalue 之前使用了 break 语句。

以上是关于C ++中的GFG括号检查器问题给出错误答案的主要内容,如果未能解决你的问题,请参考以下文章

Selenium-python 中的 css 选择器中的括号 [?] 的问题

C ++为将(静态)const全局变量设置为另一个静态const变量而给出编译器错误

C程序花括号嵌套层次统计(新)

如何解决网络错误代码0x2746?

即使电子邮件有效,电子邮件检查也会给出错误消息

C++Builder (RAD Studio) 中的范围检查错误