数据结构与算法学习笔记:栈
程序员文章站
2022-10-18 18:08:52
写在前面:记录学习《恋上数据结构与算法》的过程。课程链接地址:https://ke.qq.com/course/385223目录栈(Stack)栈的接口设计栈的应用:浏览器的前进与后退案例练习:有效的括号栈(Stack)栈的接口设计public class Stack {private List list = new ArrayList<>();public void clear() {list.c...
- 写在前面:记录学习《恋上数据结构与算法》的过程。
- 课程链接地址:https://ke.qq.com/course/385223
目录
栈(Stack)
栈的接口设计
public class Stack<E> {
private List<E> list = new ArrayList<>();
public void clear() {
list.clear();
}
public int size() {
return list.size();
}
public boolean isEmpty() {
return list.isEmpty();
}
public void push(E element) {
list.add(element);
}
public E pop() {
return list.remove(list.size() - 1);
}
public E top() {
return list.get(list.size() - 1);
}
}
栈的应用:浏览器的前进与后退
案例练习:有效的括号
public boolean isValid1(String s) {
Stack<Character> stack = new Stack<>();
int len = s.length();
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
if (c == '(' || c == '{' || c == '[') { // 左括号
stack.push(c);
} else { // 右括号
if (stack.isEmpty()) return false;
char left = stack.pop();
if (left == '(' && c != ')') return false;
if (left == '{' && c != '}') return false;
if (left == '[' && c != ']') return false;
}
}
return stack.isEmpty();
}
private static HashMap<Character, Character> map = new HashMap<>();
static {
// key - value
map.put('(', ')');
map.put('{', '}');
map.put('[', ']');
}
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
int len = s.length();
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
if (map.containsKey(c)) { // 左括号
stack.push(c);
} else { // 右括号
if (stack.isEmpty()) return false;
if (c != map.get(stack.pop())) return false;
}
}
return stack.isEmpty();
}
本文地址:https://blog.csdn.net/baidu_41388533/article/details/107389470
上一篇: 人工智能将成为互联网健康的守护神?
下一篇: 老婆的化妆品把人笑疯掉
推荐阅读
-
python学习笔记之列表(list)与元组(tuple)详解
-
数据结构与算法学习笔记:栈
-
《深入理解java虚拟机》学习笔记--第三章:垃圾收集器与内存分配策略 jvm
-
《深入理解java虚拟机》学习笔记--第四章:虚拟机性能监控与故障处理工具 虚拟机java
-
《深入理解java虚拟机》学习笔记--第四章:虚拟机性能监控与故障处理工具 虚拟机java
-
《深入理解java虚拟机》学习笔记--第三章:垃圾收集器与内存分配策略 jvm
-
数据结构与算法-15无向图广度遍历(邻接矩阵、邻接表)
-
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
-
第二十章 Caché 算法与数据结构 归并排序
-
【LeetCode】算法与数据结构笔记(一) 数组和字符串