wordpress局域网建站,网站规划与建设论文,市场营销案例100例及答案,专门做岛屿的网站目录 一、题目描述
二、题解 一、题目描述
给定一个只包括 (#xff0c;)#xff0c;{#xff0c;}#xff0c;[#xff0c;] 的字符串 s #xff0c;判断字符串是否有效。
有效字符串需满足#xff1a;
左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭…目录 一、题目描述
二、题解 一、题目描述
给定一个只包括 (){}[] 的字符串 s 判断字符串是否有效。
有效字符串需满足
左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。
示例 输入s () 输出true 输入s (] 输出false 二、题解
思路分析
我们可以使用栈来解决这个问题
遍历字符串如果是左括号就将其入栈
如果是右括号就将栈顶元素弹出判断是否是与其匹配的左括号
若栈中无元素可以弹出则无能与该右括号匹配的左括号返回false
若不是与其匹配的左括号返回false
若是与其匹配的左括号则继续遍历下一个字符。
当循环结束时判断栈是否为空
若栈不为空则表明还有未匹配的左括号返回false
若栈为空则表示所有的左括号都与相同类型的右括号匹配返回true 代码实现
class Solution {public boolean isValid(String s) {StackCharacter stack new Stack();for (int i 0; i s.length(); i) {//判断是否是左括号char ch s.charAt(i);if(ch ( || ch [ || ch {){stack.push(ch);}else {//右括号出栈//无左括号能够匹配返回falseif(stack.empty()){return false;}char ch2 stack.pop();if((ch2 ( ch )) || (ch2 [ ch ]) || (ch2 { ch })){}else {return false;}}}return stack.empty();}
}
题目来自
20. 有效的括号 - 力扣LeetCode