【LeetCode從零單排】No20.ValidParentheses
題目
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
這道題比較經典了,就是有點像編譯器判斷程式碼符號是否符合規則,是堆疊的一個簡單應用。當遇到"{","[","("的時候入棧,如果遇到這些符號的另一半,則取棧頂比較,如果是一對就繼續,不然返回false。
程式碼
public class Solution {
public boolean isValid(String s) {
if(s.length()==0) return true;
int len=s.length();
char[] symbolFirst={'(','{','['};
char[] symbolSecond={')','}',']'};
char strChar[]=s.toCharArray();
Stack sym=new Stack();
for(int i=0;i<len;i++){
for(int j=0;j<symbolFirst.length;j++){
if(strChar[i]==symbolFirst[j]){
if(len==1){
return false;
}
sym.push(strChar[i]);
}
}
for(int k=0;k<symbolSecond.length;k++){
if(strChar[i]==symbolSecond[k]){
if(sym.isEmpty()){
return false;
}
else{
if(!sym.peek().equals(symbolFirst[k])){
return false;
}
else{
sym.pop();
}
}
}}}
if(sym.isEmpty())
{
return true;
}
else{
return false;
}
}
}
/********************************
* 本文來自部落格 “李博Garvin“
* 轉載請標明出處:http://blog.csdn.net/buptgshengod
******************************************/
相關文章
- Mysql從零單排-1MySql
- 從零單排學Redis【黃金】Redis
- 從零單排學Redis【白銀】Redis
- 從零單排學Redis【鉑金一】Redis
- 從零單排學Redis【鉑金二】Redis
- SpringBoot從零單排 ------初級入門篇Spring Boot
- 【3y】從零單排學Redis【青銅】Redis
- 「從零單排canal 03」 canal原始碼分析大綱原始碼
- 「從零單排canal 05」 server模組原始碼解析Server原始碼
- 「從零單排canal 07」 parser模組原始碼解析原始碼
- 從零單排,使用 Netty 構建 IM 聊天室~Netty
- 「從零單排canal 06」 instance模組原始碼解析原始碼
- Laravel 從零單排系列教程 01 :Homestead 環境搭建Laravel
- 三分鐘從零單排js靜態檢查JS
- Spring AOP從零單排-織入時期原始碼分析Spring原始碼
- 「從零單排canal 04」 啟動模組deployer原始碼解析原始碼
- 「從零單排HBase 10」HBase叢集多租戶實踐
- 從零開始單排學設計模式「策略模式」黑鐵 II設計模式
- 從零開始單排學設計模式「UML類圖」定級賽設計模式
- 最新【從零單排】系列流出,教你如何實現字典儲存結構
- 從零開始單排學設計模式「裝飾模式」黑鐵 I設計模式
- 從零開始實現簡單 RPC 框架 3:配置匯流排 URLRPC框架
- leetcode 283. 移動零(簡單)LeetCode
- 從零開始單排學設計模式「簡單工廠設計模式」黑鐵 III設計模式
- 從零單排Java 8(3) —— List結合Lambdas對排序的高階用法Java排序
- 「從零單排canal 01」 canal 10分鐘入門(基於1.1.4版本)
- 從零打卡leetcode之day 1--兩數之和LeetCode
- 從零打卡leetcode之day 2---兩數相加LeetCode
- 「從零單排canal 02」canal叢集版 + admin控制檯 最新搭建姿勢(基於1.1.4版本)
- LeetCode 621 任務排程器LeetCode
- LeetCode:移動零(java)LeetCodeJava
- 從零開始入門 K8s | 排程器的排程流程和演算法介紹K8S演算法
- leetcode_283. 移動零LeetCode
- Leetcode 322 零錢兌換LeetCode
- 從零打卡leetcode之day 4--無重複最長字串LeetCode字串
- 從零開始的簡單光線追蹤示例
- 從零開始入門 K8s | 有狀態應用編排 - StatefulSetK8S
- 拿什麼拯救你,我的offer!(從零打卡刷leetcode,No.004)LeetCode
- 2020/11/17·Leetcode·移動零LeetCode