【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
******************************************/
相關文章
- 【LeetCode從零單排】No38.CountAndSayLeetCode
- 【LeetCode從零單排】No.7 Reverse IntegerLeetCode
- 【LeetCode從零單排】No19.RemoveNthNodeFromEndofListLeetCodeREM
- 【LeetCode從零單排】No21.MergeTwoSortedListsLeetCode
- 【LeetCode從零單排】No27.Remove ElementLeetCodeREM
- 【LeetCode從零單排】No28 Implement strStr()LeetCode
- 【LeetCode從零單排】No22.Generate ParenthesesLeetCode
- 【LeetCode從零單排】No58.Length of Last WordLeetCodeAST
- 【LeetCode從零單排】No67.AddBinaryLeetCode
- 【LeetCode從零單排】No70.ClimbingStairsLeetCodeAI
- 【LeetCode從零單排】No.9 Palindrome NumberLeetCode
- 【LeetCode從零單排】No14.LongestCommonPrefixLeetCode
- 【LeetCode從零單排】No36 Valid SudokuLeetCode
- 【LeetCode從零單排】No221.Maximal SquareLeetCode
- 【LeetCode從零單排】No15 3SumLeetCode
- 【LeetCode從零單排】No189 .Rotate ArrayLeetCode
- 【LeetCode從零單排】No88.Merge Sorted ArrayLeetCode
- Mysql從零單排-1MySql
- 【LeetCode從零單排】No96 Unique Binary Search TreesLeetCode
- 【LeetCode從零單排】No112 Path SumLeetCode
- 【LeetCode從零單排】No.169 Majority Element(hashmap用法)LeetCodeHashMap
- 【LeetCode從零單排】No83 Remove Duplicates from Sorted ListLeetCodeREM
- 【LeetCode從零單排】No26.Remove Duplicates from Sorted ArrayLeetCodeREM
- 從零單排學Redis【白銀】Redis
- 【LeetCode從零單排】No 3 Longest Substring Without Repeating CharactersLeetCode
- 【LeetCode從零單排】No129 Sum Root to Leaf NumbersLeetCode
- 【LeetCode從零單排】No.160 Intersection of Two Linked ListsLeetCode
- 從零單排學Redis【黃金】Redis
- 【LeetCode從零單排】No121 Best Time to Buy and Sell StockLeetCode
- 【LeetCode從零單排】No118 Pascal's TriangleLeetCode
- 【LeetCode從零單排】No104 Maximum Depth of Binary TreeLeetCode
- 【LeetCode從零單排】No 114 Flatten Binary Tree to Linked ListLeetCode
- 【LeetCode從零單排】No 191.Number of 1 Bits(考察位運算)LeetCode
- 從零單排學Redis【鉑金二】Redis
- 從零單排學Redis【鉑金一】Redis
- 【LeetCode從零單排】No102 Binary Tree Level Order TraversalLeetCode
- 【LeetCode從零單排】No.135Candy(雙向動態規劃)LeetCode動態規劃
- 「從零單排canal 07」 parser模組原始碼解析原始碼