/*
此代码为栈在括号匹配中的应用
*/
class Solution {
public:
bool isValid(string s) {
int len = s.length();
int MaxSize = len / 2;
char stack[10000]; //定义栈的大小
int count = -1;
for (int i = 0; i < len; i++) {
if (s[i] == '(' || s[i] == '[' || s[i] == '{') //入栈
{
count++;
stack[count] = s[i];
}
if (s[i] == ')' || s[i] == ']' || s[i] == '}') //出栈
{
if (count == -1) //右括号多余
return false;
if (s[i]==')'&& stack[count]!='(') //括号不匹配
return false;
if (s[i] == ']'&& stack[count] != '[') //括号不匹配
return false;
if (s[i] == '}'&& stack[count] != '{') //括号不匹配
return false;
count--; //括号匹配成功
}
}
//最后判断栈是否为空 即左括号是否多余
if ( count!=-1)
return false;
return true;
}
};
03-07
298
09-18
328
09-08