左耳听风-ARTS-第2周(2019/3/31-2019/4/6)
Algorithm
验证括号题(https://leetcode.com/problems/valid-parentheses/)。这道题在极客时间上覃超的《算法面试通关40讲》(https://time.geekbang.org/course/intro/130)上看过这道题,主要的思想是用压栈、出栈来判断括号的匹配,正确的情况只有一种,判断完字符串后,栈为空。
public boolean isValid(String s) {
if (s == null) {
return false;
}
if (s == "") {
return true;
}
Stack<Character> stack = new Stack<>();
char[] chars = s.toCharArray();
for (char c : chars) {
if (stack.isEmpty() || c == '(' || c == '[' || c == '{') {
stack.push(c);
} else {
Character top = stack.pop();
if ((c == ')' && top == '(') || (c == ']' && top == '[') || (c == '}' && top == '{')) {
continue;
} else {
return false;
}
}
}
return stack.isEmpty();
}
Reading
《The Greatest Developer Fallacy Or The Wisest Words You’ll Ever Hear?》链接是https://skorks.com/2011/02/the-greatest-developer-fallacy-or-the-wisest-words-youll-ever-hear/
这篇文章是陈皓推荐的,并且在他的博客中翻译成了中文(https://coolshell.cn/articles/4235.html)。“当我需要时我会去学”,这是句比较流行的话,也是我很长一时间的心里话,也是今天不去学习的借口。文中作者仔细论述了这句话的害处和正确的做法、正确的结果。
第一部分作者描述了自己担忧的一种情况,很多开发者不深入了解技术,只是在需要的时候再去学、再去查,美名为实用者,因为技术实在进步的太快了,我觉的如果这样的开发的结果不错,真的需要很强的阅读能力和学习能力。但是,作者完全否定这种思维方式,在第三部分给予了反驳。第二部分描述的第二种不好的情况,投资自己的职业未来,可能每个人都误认为在投资自己的未来,从实际效果来看,并不是这样,作者认为的原因可能是缺乏成为专家的意愿而不是知识。第三部分作者着重表述了实际上我们不知道我们不知道的东西,所以“当我需要时我会去学”这句话其实很难起效果,实际的情况是我们到时难受、煎熬,但找不到解决问题的有效方法,纵然最后完成了任务,市级上优化的空间很大,甚至是几何级的优化空间。快速的浏览一些主题并不能在我们的大脑中留下什么,这完全是浪费时间。而深入的专研一门技术,可以让我们成为专家,同时让我们在这一过程中成为其他学科的专家,知识、技术不是孤立,而是网络,我们深入专研的技术会牵扯出其他需要深入研究的知识。第四部分作者描述了学习的快慢问题,用之前看到的一句话来描述就是,值钱的技术都不是一天两天能学会的,需要很长时间,需要提前准备。第五部分作者描述,我们都喜欢和高手一起工作,但高手喜欢也和高手一起工作,我们只有深研技术,成为专家,高手才会找到你和你一起工作。
Tip
公司项目中修改之前的代码时,发现了一个http请求的工具类,使用到了HttpClient库,在使用HttpPost时,把本来放在body中的请求参数设置在了HttpPost.setParams()中,导致了错误结果,查看文档后发现,这个方法设置的是整个HttpClient的配置参数,本意不是用来设置POST请求的body参数的。body参数正确的设置方法是HttpPost.setEntity(HttpEntity entity)。
Share
Java泛型相关总结(下), https://www.cnblogs.com/minguo/p/10666976.html
左耳听风-ARTS-第2周(2019/3/31-2019/4/6)的更多相关文章
- 一切从这里起始(左耳听风 ARTS 6号小组 week 1)
ARTS 具体要求: 1.每周至少做一个 leetcode 的算法题2.阅读并点评至少一篇英文技术文章3.学习至少一个技术技巧4.分享一篇有观点和思考的技术文章 1.Algorithm Two Sum ...
- 左耳听风 ARTS Week 001
要求:1.每周至少做一个 leetcode 的算法题 2.阅读并点评至少一篇英文技术文章 3.学习至少一个技术技巧 4.分享一篇有观点和思考的技术文章 1.每周至少做一个 leetcode 的算法题 ...
- 左耳听风 ARTS Week 002
要求:1.每周至少做一个 leetcode 的算法题 2.阅读并点评至少一篇英文技术文章 3.学习至少一个技术技巧 4.分享一篇有观点和思考的技术文章 1.每周至少做一个 leetcode 的算法题 ...
- 【ARTS】01_21_左耳听风-201900401~201900407
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_20_左耳听风-20190325~20190331
zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...
- 【ARTS】01_19_左耳听风-20190318~20190324
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_18_左耳听风-20190311~20190317
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_17_左耳听风-20190304~20190310
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_16_左耳听风-20190225~20190303
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_14_左耳听风-20190211~20190217
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- [Java concurrent][Collections]
同步容器类 同步容器类包括Vector和Hashtable,二者是早期JDK的一部分.以及一些在JDK1.2中添加的可以由Collections.synchronizedXxx等工厂方法创建的. 这些 ...
- [Hadoop] 启动HDFS缺少服务
启动Hadoop后使用JPS命令查看进程,发现只有NameNode和NodeManger. 原因:格式化两次namenode.导致namenode和datanode中的CID不一致. $ hadoop ...
- [RESTful] 项目设计实践
有以下的项目需求 用户登录.注册 文章发表.编辑.管理.列表 一.资源路径 /users./articles 二.HTTP动词 GET.POST.DELETE.PUT 三.过滤信息 文章的分页筛选 四 ...
- 浅谈HTTP协议与TCP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送议. 主要特点 ...
- python学习笔记 18-4-11
一.执行一个简单的代码 1.先创建目录 mkdir /home/dev 2.切换到目录 cd /home/dev 3.在目录下创建文件夹 vim hello.py 4.编辑文件内容 vim hello ...
- Python 3 Anaconda 下爬虫学习与爬虫实践 (1)
环境python 3 anaconda pip 以及各种库 1.requests库的使用 主要是如何获得一个网页信息 重点是 r=requests.get("https://www.goog ...
- struts2常量配置
常量提供了一个简单的方法来定制Struts应用程序通过定义关键设置修改插件框架和行为. struts-default.xml—基础xml,默认包含这个文件是自动装入struts.xml文件,当我们进行 ...
- 设计模式的uml图的关键(核心)
每个设计模式的关键的部位就是,其变化点.用抽象来封装变化点 如下图的代理模式 关键点就是框图内的subject定义了 实际对象 和代理对象都具有的接口.才形成代理模式
- C#中的抽象类、抽象方法和虚方法
[抽象类]abstract 修饰符可与类和方法一起使用定义抽象类的目的是提供可由其子类共享的一般形式.子类可以根据自身需要扩展抽象类.抽象类不能实例化.抽象方法没有函数体.抽象方法必须在子类中给出具体 ...
- 《Spring实战》读书笔记——如何实现自动化装配
加我微信公众号,一起夯实Java基础,向着诗和远方出发吧~ 如果所有的装配工作都交给Spring来自动完成,减少人工的干预,是不是就能减少依赖关系配置带来的麻烦呢?认真做自己的事儿吧,装配交给Spri ...