第五章 栈与队列**part02**
20. 有效的括号
Code :
class Solution {
public:
bool isValid(string s) {
stack<char> stack_Symbol ; // (what we really need do Now ) , 现在 需要 我们 往 前 上 , 要 做 xx , 而不是 xx
// 集中 力量
int i = 0;
//int len_s = s.length();
//for(i = 0 ; i < len_s ; i++)
for(i = 0 ; s[i] != '\0' ; i++)
{
if(stack_Symbol.empty())
{
stack_Symbol.push(s[i]);
}
else
{
char Cache_Char = stack_Symbol.top();
char Cache_Borther = Getborther(Cache_Char);
if(Cache_Borther == s[i])
{
stack_Symbol.pop();
}
else
{
stack_Symbol.push(s[i]);
}
}
}
if(stack_Symbol.empty())
{
return 1;
}
else
{
return 0;
}
}
char Getborther(char left)
{
switch(left)
{
case '(' :
return ')';
break;
case '{' :
return '}';
break;
case '[' :
return ']';
break;
};
return -1 ;
}
};