学习分享,共勉
这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!
资料整理不易,读者朋友可以转发分享下!
Java核心知识体系笔记.pdf
中高级Java开发面试高频考点题笔记300道.pdf
架构进阶面试专题及架构学习笔记脑图
Java架构进阶学习视频分享
示例 1:
输入:“())”
输出:1
示例 2:
输入:“(((”
输出:3
示例 3:
输入:“()”
输出:0
示例 4:
输入:“()))((”
输出:4
提示:
S.length <= 1000
S 只包含 ‘(’ 和 ‘)’ 字符。
遇到匹配问题,考虑用栈来解决。
此次实际是求将能匹配的括号出栈以后,栈内还有多少元素?
-
遍历字符串
-
遇到
(
一律入栈 -
遇到
)
判断是否为空,不为空说明有(
与之配对。将栈顶元素出栈。 -
遍历后返回栈内剩余的数量。
所有
leetcode
代码已同步至github
欢迎
star
/**
- @author 一条coding
*/
class Solution {
public int minAddToMakeValid(String s) {
int n = s.length();
int count = 0;
Stack stack = new Stack<>();
for (int i=0;i<n;i++) {
if (s.charAt(i) == ‘(’) {
stack.push(‘(’);
}
if (s.charAt(i) == ‘)’) {
if (!stack.isEmpty()) {
stack.pop();
} else {
count++;
}
}
}
if (stack.isEmpty()) return count;
else return stack.size() + count;
}
}
最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
“道路是曲折的,前途是光明的!”
ODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**