給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "(){}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
本題需使用棧來解決,即遍歷字串,遇到左括號就進行入棧,遇到右括號,就將棧頂的左括號出棧進行判斷。
有以下情況:
1.如果是左括號,進行入棧(stack.add())
2.如果是右括號:
(1)如果棧是空的,則返回false(右括號多了);
3.當字串全部遍歷完後,判斷棧是否為空(stack.isempty()):
(1)如果不為空,則返回false(左括號多了);
(2)如果為空,則返回true;
class solution ':
case ']':
char left = stack.remove(stack.size()-1); //如果不為空,棧頂元素出棧判斷匹配
if(!(
(left == '(' && c == ')') ||
(left == '') ||
(left == '[' && c == ']'))
)break;}}
}if(stack.isempty())else
}}
leetcode 有效的括號
題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。示例1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 true includ...
leetcode 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...
Leetcode 有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...