鏈棧練習題 括號合法性

2021-10-06 17:36:59 字數 1380 閱讀 5231

括號合法性

題目:

給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。

有效字串需滿足:

(1)左括號必須用相同型別的右括號閉合。

(2)左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

**如下:

#define _crt_secure_no_warnings 1

#include

#include

#include

#include

//括號配對問題

typedef

struct snode

snode;

typedef

struct ss

ss;void

linkseackinit

(ss *pst)

bool linkstackkong

(ss *pst)

void

linkstackpush

(ss *pst,

char x)

void

linkstackpop

(ss *pst)

snode *p = pst->top->text;

pst->top->text = p->text;

free

(p);

}char

linkstacktop

(ss *pst)

bool isvalid

(char

*s)'

&&s[i]

!='('

&&s[i]

!=')'

&&s[i]

!='['

&&s[i]

!=']')if

(s[i]

==''

)return false;

else

if(top ==

'['&&s[i]

!=']'

)return false;

else

if(top ==

'('&&s[i]

!=')'

)return false;

else

linkstackpop

(&sch);}

i++;}

bool flag =

linkstackkong

(&sch)

;return flag;

}int

main()

else

printf

("您輸入的括號是不合法的!\n");

return0;

}

出棧合法性

題目描述 已知自然數1,2,n 1 n 100 依次入棧,請問序列c1,c2,cn是否為合法的出棧序列。輸入包含多組測試資料。每組測試資料的第一行為整數n 1 n 100 當n 0時,輸入結束。第二行為n個正整數,以空格隔開,為出棧序列。對於每組輸入,輸出結果為一行字串。如給出的序列是合法的出棧序列...

出棧的合法性

1788 出棧合法性 時間限制 1 sec 記憶體限制 32 mb 提交 153 解決 60 提交 狀態 討論版 題目描述 已知自然數1,2,n 1 n 100 依次入棧,請問序列c1,c2,cn是否為合法的出棧序列。輸入 輸入包含多組測試資料。每組測試資料的第一行為整數n 1 n 100 當n 0...

判斷出入棧的合法性

本篇部落格闡述內容 假設入棧序列是 出棧序列是 那麼我們讓入棧序列入棧,1先入,看一看第乙個出棧的是不是1,不是繼續將2壓棧,直到1,2,3,4入棧,4和出棧序列的第乙個匹配到了,我們將入棧的 4 pop掉,然後繼續和出棧序列的第二個匹配,看看是否需要出棧,如不需要,繼續壓棧,以此類推,直到入棧序列...