左耳听风-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

原文地址:https://www.cnblogs.com/minguo/p/10658633.html