栈与括号匹配
括号序列
http://www.nowcoder.com/questionTerminal/37548e94a270412c8b9fb85643c8ccc2
主要就是通过入栈出栈操作来完成括号匹配
1.在栈中没有一个元素时,则先将string中的第一个元素入栈
然后中止这次循环,开始下一次循环(通过continue来中止此次循环)
2.进行下一次循环,判断string中的下一个元素是否为')',']','}'然后判断栈的顶端元素是否为'(','[','{'
如果是,则出栈
3.最后判断栈中是否为空,空的话说明匹配成功
否则失败
class Solution {
public:
/**
*
* @param s string字符串
* @return bool布尔型
*/
bool isValid(string s) {
// write code here
//通过入栈与出栈实现
stack<char>stack1;//定义一个栈结构
for(int n=0;n<s.size();n++){
if(stack1.empty()) {
stack1.push(s.at(n));
continue;
};
if((s.at(n)==')'&&stack1.top()=='(')||(s.at(n)==']'&&stack1.top()=='[')||(s.at(n)=='}'&&stack1.top()=='{'))
stack1.pop();
else stack1.push(s.at(n));
}
if(stack1.empty()) return true;
else return false;
}
};
