解法:使用栈

我们可以使用栈来判断字符串是否有效。遍历字符串,当遇到左括号时,将其入栈;当遇到右括号时,判断栈顶元素是否与其匹配,若匹配则出栈,否则返回false。最后判断栈是否为空,若为空则字符串有效。

Java代码如下:

class Solution { public boolean isValid(String s) { Stack stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(' || c == '{' || c == '[') { stack.push(c); } else { if (stack.isEmpty()) { return false; } char top = stack.peek(); if ((c == ')' && top == '(') || (c == '}' && top == '{') || (c == ']' && top == '[')) { stack.pop(); } else { return false; } } } return stack.isEmpty(); }

给定一个只包括 的字符串 s 判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。用java代码实现!

原文地址: https://www.cveoy.top/t/topic/hfd2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录