ARTS是什么? Algorithm:每周至少做一个LeetCode的算法题 Review:阅读并点评至少一篇英文技术文章 Tip:学习至少一个技术技巧,总结和归纳日常工作中遇到的知识点 Share:分享一篇有观点和思考的技术文章
Algorithm
完成leetcode算法第20题。
提交四次才成功,主要是没有注意到一些边界问题。
- 只有左括号
- 只有右括号
需要考虑好边界问题,才能保证正确率
import java.util.Stack;/*** 给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。** 有效字符串需满足:** 左括号必须用相同类型的右括号闭合。* 左括号必须以正确的顺序闭合。** 示例 1:* 输入:s = "()"* 输出:true** 示例2:* 输入:s = "()[]{}"* 输出:true** 示例3:* 输入:s = "(]"* 输出:false** 示例4:* 输入:s = "([)]"* 输出:false** 示例5:* 输入:s = "{[]}"* 输出:true** 提示:* 1 <= s.length <= 104* s 仅由括号 '()[]{}' 组成*/public class IsValid20 {public static void main(String[] args) {IsValid20 example = new IsValid20();System.out.println(example.isValid("()"));System.out.println(example.isValid("()[]{}"));System.out.println(example.isValid("(]"));System.out.println(example.isValid("([)]"));System.out.println(example.isValid("{[]}"));System.out.println(example.isValid("["));System.out.println(example.isValid("(("));System.out.println(example.isValid("]"));}public boolean isValid(String s) {Stack<String> stack = new Stack<>();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);boolean push = c == '(' || c == '[' || c == '{';if (push) {stack.push(String.valueOf(c));} else if (stack.isEmpty()) {return false;} else {String pop = stack.pop();if (("(".equals(pop) && c != ')') || ("{".equals(pop) && c != '}') || ("[".equals(pop) && c != ']')) {return false;}}}return stack.isEmpty();}}
Review
We Should Write Java Code Differently
Why we should use this new coding style.
Tip
- 正常情况下,grant 命令之后,没有必要跟着执行 flush privileges 命令
- grant 命令对于全局权限,同时更新了磁盘和内存。命令完成后即时生效,接下来新创建的连接会使用新的权限
- 对于一个已经存在的连接,它的全局权限不受 grant 命令的影响
- 全局权限修改对当前线程无效,对新接入的线程有效。db权限修改对已进入db的线程无效,对其他线程有效
Share
写文章 - Spring JbdcTemplate常用方法实例简介Finish
预计完成时间:2021.11.08 ~ 2021.11.14
实际完成时间:2021.11.14
