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 如果...