首页 > 解决方案 > 使用堆栈的平衡括号

问题描述

我编写这段代码来检查平衡的刹车(例如,“{([])}”是平衡的,而“{([)]}”是不平衡的)。我不明白我的代码有什么问题..请在此处帮助函数 isBalanced 接收字符串 s,如果字符串平衡则返回 YES,否则返回 NO。这个问题来自hackerrank- https: //www.hackerrank.com/challenges /平衡括号/问题

string isBalanced(string s) {
stack<char> comp;
char temp;
int i;
for(i=s.size()-1;(s[i]=='}' ) || (s[i]==')' ) || (s[i]==']');i--)
{
    comp.push(s[i]);
}

if(comp.size()!=i+1)
return ("NO");

while(!comp.empty() && i>=0)
{
    temp=comp.top();
    if(temp!=s[i])
    return ("NO");
    comp.pop();
    i--;
}

return("YES");
}

标签: c++data-structuresstackc++14

解决方案


推荐阅读