leetcode之四:https://leetcode.com/problems/valid-parentheses/
求有效的括号比對:
class Solution {
public:
bool isValid(string s) {
stack<char> str;
for(int i = 0 ; i < s.size();i++)
{
if(s[i] == '(' || s[i] == '{' || s[i] == '[')
str.push(s[i]);
else if(s[i] == ')' )
{
if<span style="color:#ff0000;">(!str.empty()</span> && str.top() == '(')//判斷棧是否為空很重要,比如輸入為“]”則棧為空。
str.pop();
else
return false;
}
else if(s[i] == ']')
{
if(!str.empty() && str.top() == '[')
str.pop();
else
return false;
}
else if(s[i] == '}')
{
if(!str.empty() && str.top() == '{')
str.pop();
else
return false;
}
}
return str.empty();
}
};