-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