C 有效的括號

2021-10-14 12:29:25 字數 720 閱讀 5515

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

有效字串需滿足:

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

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

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

由於要對照字串對稱位置上的括號是否對應,決定採用棧來解決這一問題,若字串長度不為偶數則直接返回false,遍歷字串,讀到前括號時入棧,讀到後括號時若棧空則返回false,若棧不空則用棧頂元素與其比較,能對應則出棧,不能則返回false。最後檢查棧空,若空則返回true

class

solution

stack <

char

>stk;

for(

int i=

0;isize()

;i++

)else

else

else

if(s[i]

=='}'

&&stk.

top()==

'else

if(s[i]

==']'

&&stk.

top()==

'[')

else}}

}return stk.

empty()

;}};

反思:剛開始沒有考慮到讀到後括號時棧空的情況,還錯誤地將判斷條件寫為s[i]==『stk.top()』

20 有效的括號 C

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

有效的括號(C 編寫)

題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5...

20 有效的括號(C )

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...