所谓ARTS: 每周至少做一个LeetCode的算法题;阅读并点评至少一篇英文技术文章;学习至少一个技术技巧;分享一篇有观点和思考的技术文章。(也就是Algorithm、Review、Tip、Share 简称ARTS)这是第六期打卡。
有效的括号 (leetcode.com/problems/v)
题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足: 1. 左括号必须用相同的右括号闭合 2. 左括号必须以正确的顺序闭合
注意空字符串可被认为是有效字符串 示例 1:
输入:"()""
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
这道算法题,考察的情况就不是之前那些题目一样,是常规操作了。我说的常规操作,这里的意思是说对字符串的增删改查的操作,因为你仔细查看这题,你会发现,其实这就是一道堆栈问题。
之前没做过入栈出栈的题目,刚好这道题可以拿来练手了。这题的思路,无非就是对堆栈的熟悉程度,小编给出中文版力扣中的解题思路,供大家参考。在这里,小编就不啰嗦了,相信官网里给出的解释比我这个更能让大家看懂。地址:
(leetcode-cn.com/problem)
public static boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(char c : s.toCharArray()) {
if (c == '(' || c == '[' || c == '{') {
stack.push(c);
} else {
if (stack.isEmpty()) {
return false;
} else {
char top = stack.pop();
if (c == ')' && top != '(') {
return false;
}
if (c == ']' && top != '[') {
return false;
}
if (c == '}' && top != '{') {
return false;
}
}
}
}
return stack.isEmpty();
}
GitHub Protest Over Chinese Tech Companies’ “996” Culture Goes Viral (radiichina.com/github-p)
今天在知乎上去看一些国外的技术网站的推荐,很多人都推荐了raddit,我也就点进去看了,结果这条标题吸引了我。
对的,就是前些天在我们技术圈很是风靡的关于“996”的话题的,我就饶有兴趣的点点开看了,文章很短,因为恰逢5.1假期,我给自己偷下懒。
朋友们都知道GitHub是“托管和审查代码,管理项目,并与3100万开发人员一起构建软件”的网站,这个996已成为有史以来发展最快的GitHub存储库之一,说明还是引起了很多人写代码的朋友的关注,很多大V也针对这个事件写过文章,都发表了自己的观点。
当然啦,还有马云爸爸,他的话更是轰动,怕别人误解还是啥的,还在微博里做了补充。更引起波澜的自然就是京东的东哥了,文中也提到,京东是被重点点名的企业,何况还有各种新闻缠绕,曾经的曾经,京东是多少人羡慕的地方吧。
对于我们IT从业人员来说,996并不可怕,可怕的是你996了还没有收获,无论从技术、精神还是金钱上,那这个996就毫无意义。仅是个人观点,各位不要做多猜测哈。
这次吹水了,下周好好找找资源,继续学习技术,干起来。
前两次是《Java核心技术36讲》的学习内容,第26和27讲,因为这门课记录的笔记比较多,这次还是继续分享这门课的笔记,接下来的第28讲内容,谈谈你的GC调优思路。
谈谈你的GC调优思路
对于GC调优来说,首先就需要清楚调优的目标是什么?从性能的角度看,通常关注三个方面内存占用(footprint)、延时(latency)和吞吐量(throughput) 基本的调优思路可以总结为:
调优建议
继续设计模式的学习执行,更新到观察者模式。在上面说道,我学习Java输出了一篇学后感,和大家一起共勉。