分隔符匹配.cpp

来自「该压缩文件夹内有诸多常用算法和数据结构的c++模板编程实现」· C++ 代码 · 共 53 行

CPP
53
字号
#include<iostream.h>
#include<fstream.h>
#include"listStack.h"
bool chMatch()
{
	lStack<char> a;
	char ch[50],ch2;
	cin>>ch;
	for(int i=0;ch[i]!=NULL;i++)
	{
		if(ch[i]=='('||ch[i]=='['||ch[i]=='{')
			a.push(ch[i]);
		else if(ch[i]=='/')
		{
			if(ch[i+1]=='*')
			{
				for(int j=i+2;j<50;j++)
					if(ch[j]=='*'&&ch[j+1]=='/')
						return true;
				return false;
			}
			else 
			
				continue;
		}
		else if(ch[i]==')'||ch[i]==']'||ch[i]=='}')
		{
			ch2=a.pop();
			if((ch[i]==')'&&ch2=='(')||
				(ch[i]==']'&&ch2=='[')||
				(ch[i]=='}'&&ch2=='{'))
			{
				continue;
			}
			else
				return false;
		}
	}
	if(a.isEmpty())
		return true;
	else return false;
}
void main()
{
	
	if(chMatch()==1)
		cout<<"匹配成功!"<<endl;
	else
		cout<<"匹配失败!"<<endl;



}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?