這道題第一反應就是使用棧,遇到左括號壓棧,遇到右括號取棧頂元素看是否匹配,若匹配將棧頂元素出棧繼續匹配,若不匹配直接返回false。我寫了乙個比較粗暴的方法:
class solution '&&topelement!='}}
return chs.isempty();}}
結果:
看到官方的答案用了集合hashmap,感覺比較妙,用右括號作為鍵,左括號作為值:
class solution
public boolean isvalid(string s)
} else
}// 如果棧不為空,則不匹配
return stack.isempty();}}
結果:
還有提公升的。
20 有效括號
1.題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。2.示例 輸入 輸出 true輸入 輸出 false3.思路 可以採用棧來解決,第一步 判斷棧是否空,為空則進乙個括號,若不為空,則判斷當前括號和棧頂元素是否匹配,不...
20 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...
20 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...