栈的应用-括号匹配

125 阅读1分钟
int match(string &str){
	unsigned int i=0;
	stack<char>s;
	while(i<str.size()){
		if(str[i]=='('||str[i]==')'||str[i]=='['||str[i]==']'||str[i]=='{'||str[i]=='}'){
			if(str[i]=='('||str[i]=='{'||str[i]=='['){
				s.push(str[i]);
				i++;
			}
			else{
				if((s.top()=='('&&str[i]==')')||(s.top()=='['&&str[i]==']')||(s.top()=='{'&&str[i]=='}')){
					s.pop();
					if(s.empty()) return 1;
					i++;
				}
				else return 0;
			}
		}
		else i++;
	}
}