假設表示式中允許包含兩種括號:圓括號和方括號,其巢狀的順序隨意,如([ ]())
或[([ ][ ])]
等為正確的匹配,[( ])
或([ ]( )
或(()))
均為錯誤的匹配。
現在要求檢驗乙個給定表示式中的括弧是否正確匹配。
輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出ok,不匹配就輸出wrong。
輸入1
輸出1ok輸入2 輸出2
wrongoj提示segmentation fault: 段錯誤,檢查是否有陣列越界,指標異常,訪問到不應該訪問的記憶體區域的寫法?
俺不懂(t_t)
#define _crt_secure_no_warnings
#include
#include
#include
struct stack
;struct stack initiatestack()
void
push
(struct stack* s,
char a)
*s->top++
= a;
}char
pop(
struct stack* s)
intmain()
else
} a =
getchar()
;}if(s.base != s.top)flag =0;
flag ==0?
printf
("wrong"):
printf
("ok");
return0;
}
可以通過oj的寫法?
#define _crt_secure_no_warnings
#include
#include
#include
intmain()
, c;
while
(scanf
("%c"
,&c)==1
)else
if(c ==
')'&& a[flag]
=='('
)flag--
;else
if(c ==
']'&& a[flag]
=='['
)flag--
;else
} flag ==0?
printf
("ok\n"):
printf
("wrong\n");
return0;
}
括弧匹配檢驗(C語言)
描述 假設表示式中允許包含兩種括號 圓括號和方括號,其巢狀的順序隨意,如 或 等為正確的匹配,或 或 均為錯誤的匹配。現在的問題是,要求檢驗乙個給定表示式中的括弧是否正確匹配?輸入乙個只包含圓括號和方括號的字串,判斷字串中的括號是否匹配,匹配就輸出 ok 不匹配就輸出 wrong 輸入乙個字串 輸出...
資料結構 括號匹配的檢驗C語言
演算法 遇到普通字元忽略 所有字元掃瞄完畢,棧為空 成功 匹配失敗或掃瞄完畢,但是棧不為空 失敗 created by xuehu96 on 2019 08 09.include include linkstack.h intisleft const char c return ret int is...
資料結構作業 括號匹配
include include include define max 128 宣告堆疊元素 儲存左括號的型別和位置 struct brackets struct brackets stack max 定義棧 int top 0 定義棧頂且初始化 int ispaired 定義配對標誌位 void p...