Weekly 6

Algorithm

1.Valid Parentheses

  • What 括号匹配

  • How 用栈来进行操作,左括号push,右括号pop然后进行判断,不匹配就false,如果全匹配或空字符串就true.
  • Key Codes
class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<Character>();
        int i;
        for(i=0;i<s.length();i++){
            switch (s.charAt(i)){
                case '(': stack.push(s.charAt(i));break;
                case '{': stack.push(s.charAt(i));break;
                case '[': stack.push(s.charAt(i));break;
                case ')':
                    if (stack.isEmpty()||stack.pop()!='('){
                        return false;
                    }
                    break;
                case '}':
                    if (stack.isEmpty()||stack.pop()!='{'){
                        return false;
                    }
                    break;
                case ']':
                    if (stack.isEmpty()||stack.pop()!='['){
                        return false;
                    }
                    break;
                default:
                    break;
            }
        }
        return stack.isEmpty();
    }
}

Review

What's a senior engineer's job?

  • What 一个高级程序员的工作是什么?

  • How

  • 1.写代码丶代码走查丶编写和审查设计文档丶帮助团队中遇到困难的成员丶对项目质量把关丶建立新项目丶计划项目工作丶主动,清晰沟通项目风险丶做有利于团队/公司的副项目丶了解项目与业务优先级的关系丶决定何时停止做项目。
  • 2.程序员大部分的工作时间不是在写代码。说话、写文档、思考,这些占了很多时间,而且这些一般都不出现在职位描述里,导致很多刚进入职场的人会因为把时间花在写代码之外而感到内疚。

Tip

  • What 并发与并行的几个理解

  • How

    • 第一种理解
      • 并发是指一个处理器同时处理多个任务。
      • 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
      • 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。
    • 第二种理解
      • 并行:指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。
      • 并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。
      • 并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。
    • 第三种理解
      • 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态.这种方式我们称之为并发。
      • 当系统有一个以上CPU时,则线程的操作有可能非并发.当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。

Share

eclipse pmd的使用

猜你喜欢

转载自www.cnblogs.com/cmh1111/p/10186641.html