-3
检查inputlikelike []),[])等,它给运行时错误,但对于其他输入如[[]],它工作正常。运行时错误的平衡括号
class Solution {
public:
bool isValid(string s)
{
stack<char> st;
int i=0;
char top;
if(s[0] == ']' || s[0] == ')' || s[0] == '}')
return 0;
while(s[i]!='\0')
{
if(s[i] == '[' || s[i] == '(' || s[i] == '{')
{
st.push(s[i]);
i++;
continue;
}
else if(st.top() == '(' && s[i] == ')')
{
st.pop();
i++;
continue;
}
else if(st.top() == '{' && s[i] == '}')
{
st.pop();
i++;
continue;
}
else if(st.top() == '[' && s[i] == ']')
{
st.pop();
i++;
continue;
}
else
{
st.push(s[i]);
i++;
continue;
}
}
if(st.empty())
return 1;
else
return 0;
}
};
尝试重述你的问题,我不明白你在问什么,确保你有adde d正确的标签 – Jerzyk
我得到运行时错误输入“[]))”但它应该返回false而不是。 –
看起来你在下面得到了一个有用的答案,但没有回应。请注意,像Stack Overflow这样的网站完全是基于社区的好感,所以请尽量鼓励它与互动和投票尽可能多的集合。 – halfer