給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"示例 2:輸出: true
輸入: "(){}"示例 3:輸出: true
輸入: "(]"示例 4:輸出: false
輸入: "([)]"示例 5:輸出: false
輸入: ""利用棧,依次遍歷字串,當為前括號"(""[""輸出: true
else if (s[i] == '[')
else if (s[i] == '';
}else if (top == -1 || s[i] != stack[top])
else
}if (top == -1) else
}go同理,構建棧結構。
需要注意的是,構建棧結構時,go語言使用slice切片進行構建。
同時應注意入棧出棧的具體操作流程
// 0 ms 2 mb
func isvalid(s string) bool
for i:= 0; i < len(s); i++ else if s[i] == '[' else if s[i] == 'else if len(stack) == 0 || stack[len(stack)-1] != s[i] else
}if len(stack) == 0 else
}
有效的括號字串
問題描述 給定乙個只包含三種字元的字串 和 寫乙個函式來檢驗這個字串是否為有效字串。有效字串具有如下規則 任何左括號 必須有相應的右括號 任何右括號 必須有相應的左括號 左括號 必須在對應的右括號之前 可以被視為單個右括號 或單個左括號 或乙個空字串。乙個空字串也被視為有效字串。例 1 輸入 輸出 ...
字串 最長有效括號
給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括號子串為 示例 2 輸入 輸出 4 解釋 最長有效括號子串為 思路 記錄左右括號的個數 相等了就比較更新答案 如果count2 count1 就結算 從0開始 注意 還要從右向左遍歷!不然會漏掉...
LeetCode 字串 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 示例 輸入 輸出 true 輸入 輸出 false 輸入 輸出 true 用棧來做。遍歷輸入的字串序列,當當前元素為右括號 並且棧頂元素為當前元素對應的左括號 if s 0 s 0 s 0 stackstk stk.push s 0 for ...