給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意:空字串可被認為是有效字串。
由於要對照字串對稱位置上的括號是否對應,決定採用棧來解決這一問題,若字串長度不為偶數則直接返回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...