文章
67
粉丝
207
获赞
29
访问
34.8k
#include <iostream>
#include <string.h>
using namespace std;
int main(){
int n,cc=0,num=0,top=-1,flag=0;
char now;
cin >>n;
char stack[300];char b[105][300];char c[105][10];
for(int i=0;i<105;i++)for(int j=0;j<300;j++) b[i][j]=0;
for(int i=0;i<105;i++)for(int j=0;j<10;j++) c[i][j]=0;
for(int i=0;i<300;i++) stack[i]=0;
for(int i=0;i<n;i++){
top=-1; num=0; now=0;
cin >> b[i];
for(int j=0;j<strlen(b[i]);j++){
flag=0;
if(num>0){
now=stack[top];
//能匹配上=====================
if((now=='<'&&b[i][j]=='>')||(now=='('&&b[i][j]==')')||(now=='['&&b[i][j]==']')||(now=='{'&&b[i][j]=='}'))
{
num--;//栈中元素减少
top--;
}
else //不能匹配上==================
{ //if条件就是不符合优先级,直接跳出循环
if((now=='<'&&(b[i][j]=='('||b[i][j]=='['||b[i][j]=='{'))||(now=='('&&(b[i][j]=='['||b[i][j]=='{'))||(now=='['&&b[i][j]=='{')){
flag...
登录后发布评论
暂无评论,来抢沙发