zoukankan      html  css  js  c++  java
  • 合式公式

    以前写的,现在又被我捞出来了。。。。

    #include<stdio.h>
    #include<queue>
    using namespace std;
    const int MAXN=100010;
    #define al(x)(x>='a'&&x<='z')
    char m[MAXN];
    queue<char>dl;
    int stnum,alnum;
    bool sup(){
    	char a,b;
    	while(!dl.empty()){
    	a=dl.front();
    	dl.pop();
    	if(a==')'){
    		stnum--;
    		return true;
    	}
    	else if(a=='!'){
    		if(dl.empty())return false;
    		b=dl.front();
    		dl.pop();
    	}
    	else if(a=='('){
    		stnum++;
    		if(!sup())return false;
    	}
    	else if(!al(a))return false;
    	if(dl.empty())return true;
    	b=dl.front();
    	dl.pop();
    	if(b==')'){
    		stnum--;
    		return true;
    	}
    	if(b=='+'||b=='*'||b=='-'||b=='='){
    		if(dl.empty())return false;
    	}
    	else return false;
    }
    }
    int main(){
    	puts("由于制表符打印着麻烦,这里用!,+,*,-,=分别代替┒,∧,∨,→,那个双箭头没找到。。。"); 
    	while(gets(m)){
    		while(!dl.empty())dl.pop();
    		stnum=0;alnum=0;
    		for(int i=0;m[i];i++){
    			if(m[i]==' '||m[i]=='	')continue;
    			if(al(m[i]))alnum++;
    			dl.push(m[i]);
    		}
    		if(dl.empty()||!alnum)puts("不是合式公式");//判断表达式为空时不是合式公式; 
    		else if(!sup()||stnum!=0)puts("不是合式公式");
    		else puts("是合式公式");
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    323. Number of Connected Components in an Undirected Graph
    418. Sentence Screen Fitting
    417. Pacific Atlantic Water Flow
    416. Partition Equal Subset Sum
    415. Add Strings
    245. Shortest Word Distance III
    [AHOI2009]维护序列
    [洛谷P1439]排列LCS问题
    [Vijos P1369]难解的问题
    [codevs3657]括号序列
  • 原文地址:https://www.cnblogs.com/handsomecui/p/5031277.html
Copyright © 2011-2022 走看看