栈的另一个应用:括号匹配
栈的另一个应用:括号匹配
1、LeetCode官网
- 美网:https://leetcode.com/
- 国服:https://leetcode-cn.com/
我这里使用的是国服来测试的。
2、LeetCode找到20号题目
(1)搜索题目
(2)查看20号题目
(3)本地编辑器解决20号题目
import java.util.Stack;
class Solution {
public boolean isValid(String s) {
char[] c = s.toCharArray();
Stack<Character> stack = new Stack<>();
for (int i = 0; i < c.length; i++) {
if (c[i] == '(' || c[i] == '[' || c[i] == '{') {
stack.push(c[i]);
} else {
if(stack.isEmpty()){
return false;
}
char topElement = stack.pop();
if (c[i] == ')' && topElement != '(') {
return false;
}
if (c[i] == ']' && topElement != '[') {
return false;
}
if (c[i] == '}' && topElement != '{') {
return false;
}
}
}
return stack.isEmpty();
}
}
(4)本地编辑器测试20号题目
public class Main {
public static void main(String[] args) {
String testStr1= "()";
String testStr2 ="()[]{}";
String testStr3="(]";
String testStr4="([)]";
String testStr5="{[]}";
Solution solution = new Solution();
boolean isValid1 = solution.isValid(testStr1);
System.out.println("isValid1 = " + isValid1);
boolean isValid2 = solution.isValid(testStr2);
System.out.println("isValid2 = " + isValid2);
boolean isValid3 = solution.isValid(testStr3);
System.out.println("isValid3 = " + isValid3);
boolean isValid4 = solution.isValid(testStr4);
System.out.println("isValid4 = " + isValid4);
boolean isValid5 = solution.isValid(testStr5);
System.out.println("isValid5 = " + isValid5);
}
}
运行结果如下:
isValid1 = true
isValid2 = true
isValid3 = false
isValid4 = false
isValid5 = true
Process finished with exit code 0
(5)提交LeetCode代码验证是否通过
如果感兴趣的童鞋,可以观看我下一篇博客:关于LeetCode的更多说明