題目描述:
給定乙個只包括 『(』,』)』,』』,』[』,』]』 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
思路:首先對陣列進行初步判斷,如果為空,則有效;如果陣列元素有奇數個,或首元素為右括號,則無效;否則,借助乙個棧暫時存放左括號,若遇到右括號且與棧頂元素可配對,則移出棧頂元素。若最終棧為空,則字串有效。
**:
public class solution
if(s.length%2!=0||s[0]==')'||s[0]==']'||s[0]=='}')
stackstack=new stack();
foreach(var i in s)
else if(i==')')
else
}else if(i==']')
else
}else if(i=='}')
else}}
return stack.count==0;}}
運**況:
總結:最開始想到多次遍歷找對稱子陣列,但是時間和空間複雜度肯定特別大,棧的「先進後出」的特點,卻能很好地解決這個問題。
有效的括號
題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。解題思路 坦白來講這道題真的沒什麼思路,掉的坑也比較多,因為審題不認真,最後的一句話,注意空字串可被認為是有效字串。被吃掉了 最後提交的 執...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...