Articles

面向对象编程与SOLID原则(一)

面向对象出现的背景 在面向对象之前,主流的编程思想是面向过程。 面向过程是以“过程”或“事件”为核心,用函数来表示“事件”或“过程” 通过组合不同个函数调用来完成一个功能。 面向过程的语言,它的性能更好,但是随着软件的规模和复杂度的不断增加,这时候它的缺点也十分明显: 代码复用性低 系统规模庞大, …

面向对象编程与 SOLID 原则(二)

在文章的 第一部分,我们主要讨论了面向对象与前两个 SOLID 原则,它们分别是单一职责原则和开闭原则。在这一部分,我们将讨论接下来的三个原则。 面向对象五大原则(SOLID): 里氏替换原则(Liskov-Substituion Principle) 子类可以替换父类并且出现在父类能够出现的任何地 …

Leetcode365 Water and Jug Problem

365. 水壶问题 Difficulty: 中等 有两个容量分别为 x 升 和 y 升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z 升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z 升水。 你允许: 装满任意一个水壶 清空任意一个水壶 从一个水壶向另 …

LeetCode 115. 不同的子序列

115. 不同的子序列 (Distinct Subsequences) Difficulty: 困难 给定一个字符串 S和一个字符串 T,计算在 S 的子序列中 T 出现的个数。 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例 …

LeetCode 44. 通配符匹配

44. 通配符匹配 Difficulty: 困难 给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 1 2 '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配 …

1 of 10