表示式判斷 帥呆了的題目

2021-09-08 09:24:18 字數 1339 閱讀 6530

time limit: 1 sec  

memory limit: 4 mb

submit: 375  

solved: 31

[submit]

[status]

設s是乙個合法的表示式,e為乙個數字字串行,則合法的表示式可以表示為:e, +e, -e, (s),+(s),-(s),s+(s),s-(s),s*(s),s/(s) 等。(e可以是全『0』的字串)。

請注意+s, -s, s+s等不一定是合法的表示式,因為可能出現如「+-e」運算子相鄰情況,另外出現「()」括號中沒有元素的表示式也是不合法的。

每行乙個字串,最長不超過1023個字元。可能有空行。

如果表示式合法,輸入「yes」,否則輸入「no」,然後換行。

如果表示式為空,則輸出乙個空行。

-1+2+-1+2+(-1+2)()-23

yesnoyesno

/*

設s是乙個合法的表示式,e為乙個數字字串行,則合法的表示式可以表示為:e, +e, -e, (s),+(s),-(s),s+(s),s-(s),s*(s),s/(s) 等。

(e可以是全『0』的字串)。請注意+s, -s, s+s等不一定是合法的表示式,因為可能出現如「+-e」運算子相鄰情況,另外出現「()」括號中沒有元素的表示式也是不合法的。

*/#include#include#include#define ori 0

#define num 1

#define cal 2

#define bck 3

#define fail -1

int f[4][1 << 7];

char buf[1 << 10];

void init()

void delete_blank() ///

//int find_bck(int start)

return 0;//如果( ) 不對稱 則直接返回0

}bool dfa(int l, int r)

else if(state == fail)//同時出現了兩個運算符號

return false;

} return state == num;//如果沒有擴號 最後乙個 一定是數字 才對 所以判斷是否 等於num 如果有括號我們直接把state賦值成num就行了

}int main()

//空行就是長度為0的字串

printf(dfa(0, strlen(buf)) ? "yes\n" : "no\n");

} return 0;

}

if判斷表示式

primary 意義 a file 如果file 存在則為真。b file 如果file 存在且是乙個塊特殊檔案則為真。c file 如果file 存在且是乙個字特殊檔案則為真。d file 如果file 存在且是乙個目錄則為真。e file 如果file 存在則為真。f file 如果file 存...

el 表示式判斷

c if test currentroleid為空 c if c if test currentroleid不為空 c if c if test currentroleid和sysadmin相等 c if c if test currentroleid和sysadmin不相等 c if html v...

Shell 表示式判斷

表示式放到 中 檔案表示式 e filename 如果 filename存在,則為真 d filename 如果 filename為目錄,則為真 f filename 如果 filename為常規檔案,則為真 l filename 如果 filename為符號鏈結,則為真 r filename 如果...