伪代码
1.得到字符串.
2.创建一个 edList(用来模拟Stack)
2.非空判断,空返回true
3.遍历字符串
如果第一次碰到三个括号([{中的任意一个右括号直接返回false
相当于这种情况
}{}({})//第一个括号是右括号必定是错误的
如果碰到左括号,给 edlist中添加对应的右括号,碰到右括号,判断 edlist末尾的右括号是否与其匹配,匹配则删除 edlist末尾的括号,不匹配直接返回false
相当于这种情况
假设字符串是{([])}
遍历完前三个应该是 list中结果应该是{([
遍历完完成应该是 list中结果应该是空
代码实现
public class Test {
public static boolean isValid(String s) {
// 用来模拟栈队列,存放右括号
edList<Character> l = new edList();
// 对字符串进行非空判断
if (s.isEmpty()) return true;
// 遍历字符串
for (char c : s.toCharArray()) {
// 如果是\"(\"则将\")\"压栈
if (c==\'(\') {
l.add(\')\');
} else if (c == \'[\') {
// 如果是\"[\"则将\"]\"压栈
l.add(\']\');
} else if (c == \'{\') {
// 如果是\"{\"则将\"}\"压栈
l.add(\'}\');
} else {
// 如果没有左括号则集合中为空,返回false
// 或者遇到右括号弹栈时,括号类型不一致,也返回false
if (l.isEmpty() || l.removeLast() != c) {
return false;
}
}
}
// 遍历完成,集合中应当也是空的.
return l.isEmpty();
}
public static void main(String[] args) {
String s = \"()[]{}\";
boolean valid = isValid(s);
System.out.println(valid);
}
}
输出结果:true
继续阅读与本文标签相同的文章
-
加速4G、5G网络演进 全“芯”展锐出新招
2026-05-18栏目: 教程
-
男朋友说“亲亲”,先别急着回“木马”,这样回撩他一辈子
2026-05-18栏目: 教程
-
使用vim在文件中插入命令执行的输出结果
2026-05-18栏目: 教程
-
技术分享:轻松调试Stream
2026-05-18栏目: 教程
-
外卖产业呈现新气象,品质化发展趋势明显
2026-05-18栏目: 教程
