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;
    }
    

      

  • 相关阅读:
    adb命令之adb install
    GNU make and Makefile
    Makefile经典教程(掌握这些足够)
    Android.mk简介
    PhoneFactory.getDefaultPhone must be called from Looper thread
    Android源码目录结构
    软件部通用技术类网站名录
    β测试
    α测试
    白盒测试
  • 原文地址:https://www.cnblogs.com/handsomecui/p/5031277.html
Copyright © 2011-2022 走看看