BUPT-DSA2019 Fall Chap.3 括號匹配

原理也很簡單,就是檢測到右括號時,看棧頂是不是對應的左括號,還有就是最後檢查完了之後是不是有多餘的左括號。
Tips: 可以把它整合進你的計算器裏,甚至可以讓計算器自動補齊括號。

#include <iostream>
#include <string>
#include <stack>
using namespace std;

bool paranthesisMatch(string &s)
{
	stack<char> aux;//輔助檢查棧
	string::iterator itr;//字符串迭代器
	bool result=true;
	for(itr=s.begin();result && itr!=s.end();++itr)
		switch(*itr){
			case '(':case '[':case '{':aux.push(*itr);break;
			case ')':if(aux.top()=='(') aux.pop();
				else result=false;break;
			case ']':if(aux.top()=='[') aux.pop();
				else result=false;break;
			case '}':if(aux.top()=='{') aux.pop();
				else result=false;break;
	}
	if(!aux.empty()) result=false;
	return result;
}

int main(int argc, char const *argv[])
{
	string s;cin>>s;
	cout<<boolalpha<<paranthesisMatch(s)<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章