# AlgorithmStudy
**Repository Path**: jim123456/algorithm-study
## Basic Information
- **Project Name**: AlgorithmStudy
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-15
- **Last Updated**: 2021-12-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
AlgorithmStudy
[toc]
## Array
- [ ] #### [11. 盛最多水的容器](https://leetcode-cn.com/problems/container-with-most-water/)
- [ ] #### [283. 移动零](https://leetcode-cn.com/problems/move-zeroes/)
- [ ] #### [70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)
- [ ] #### [1. 两数之和](https://leetcode-cn.com/problems/two-sum/)
- [ ] #### [15. 三数之和](https://leetcode-cn.com/problems/3sum/)
## Linked List
- [x] [206. Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)
- [ ] [24. Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs)
- [x] [141. Linked List Cycle](https://leetcode.com/problems/linked-list-cycle)
- [ ] [142. Linked List Cycle II](https://leetcode.com/problems/linked-list-cycle-ii)
- [ ] [25. Reverse Nodes in k-Group](https://leetcode.com/problems/reverse-nodes-in-k-group)
## All
- [ ] #### [26. 删除有序数组中的重复项](https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/)
- [ ] #### [189. 轮转数组](https://leetcode-cn.com/problems/rotate-array/)
- [ ] #### [21. 合并两个有序链表](https://leetcode-cn.com/problems/merge-two-sorted-lists/)
- [ ] #### [88. 合并两个有序数组](https://leetcode-cn.com/problems/merge-sorted-array/)
- [ ] #### [1. 两数之和](https://leetcode-cn.com/problems/two-sum/)
- [ ] #### [283. 移动零](https://leetcode-cn.com/problems/move-zeroes/)
- [ ] #### [66. 加一](https://leetcode-cn.com/problems/plus-one/)
## Stack、Queue、Priority Queue、Dequeue
栈、队列、优先队列、双端队列
- [ ] #### [20. 有效的括号](https://leetcode-cn.com/problems/valid-parentheses/)
- [ ] #### [155. 最小栈](https://leetcode-cn.com/problems/min-stack/)
- [ ] #### [84. 柱状图中最大的矩形](https://leetcode-cn.com/problems/largest-rectangle-in-histogram/)
- [ ] #### [239. 滑动窗口最大值](https://leetcode-cn.com/problems/sliding-window-maximum/)
- [ ] [641. Design Circular Deque](https://leetcode.com/problems/design-circular-deque/)
- [ ] [42. Trapping Rain Water](https://leetcode.com/problems/trapping-rain-water/)
## 哈希表、映射、集合
- [ ] #### [242. 有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/)
- [ ] #### [49. 字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/)
- [ ] #### [1. 两数之和](https://leetcode-cn.com/problems/two-sum/)
精选示例:https://shimo.im/docs/R6g9WJV89QkHrDhr/read
## 树、二叉树、二叉搜索树
[VisuAlgo - 二叉搜索树,高度平衡树](https://visualgo.net/zh/bst)
- [ ] #### [94. 二叉树的中序遍历](https://leetcode-cn.com/problems/binary-tree-inorder-traversal/)
- [ ] #### [144. 二叉树的前序遍历](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/)
- [ ] #### [590. N 叉树的后序遍历](https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal/)
- [ ] #### [589. N 叉树的前序遍历](https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/)
- [ ] #### [429. N 叉树的层序遍历](https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/)
## 泛型递归、树的递归
### 实战
- [ ] #### [70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)
- [ ] #### [22. 括号生成](https://leetcode-cn.com/problems/generate-parentheses/)
- [ ] #### [226. 翻转二叉树](https://leetcode-cn.com/problems/invert-binary-tree/)
- [ ] #### [98. 验证二叉搜索树](https://leetcode-cn.com/problems/validate-binary-search-tree/)
- [ ] #### [104. 二叉树的最大深度](https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/)
- [ ] #### [111. 二叉树的最小深度](https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/)
- [ ] #### [297. 二叉树的序列化与反序列化](https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/)
### 课后
- [ ] #### [236. 二叉树的最近公共祖先](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/)
- [ ] #### [105. 从前序与中序遍历序列构造二叉树](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)
- [ ] #### [77. 组合](https://leetcode-cn.com/problems/combinations/)
- [ ] #### [46. 全排列](https://leetcode-cn.com/problems/permutations/)
- [ ] #### [47. 全排列 II](https://leetcode-cn.com/problems/permutations-ii/)
## 分治、回溯
- [ ] #### [22. 括号生成](https://leetcode-cn.com/problems/generate-parentheses/)
### 预习
- [ ] #### [50. Pow(x, n)](https://leetcode-cn.com/problems/powx-n/)
- [ ] #### [78. 子集](https://leetcode-cn.com/problems/subsets/)
### 参考
· [牛顿迭代法原理](http://www.matrix67.com/blog/archives/361)
· [牛顿迭代法代码](http://www.voidcn.com/article/p-eudisdmk-zm.html)
### 实战
- [ ] #### [169. 多数元素](https://leetcode-cn.com/problems/majority-element/)
- [ ] #### [17. 电话号码的字母组合](https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/)
- [ ] #### [51. N 皇后](https://leetcode-cn.com/problems/n-queens/)
## 深度优先搜索、广度优先搜索
- DFS 代码模板
```python
# 递归写法
visited = set()
def dfs(node, visited):
if node in visited: # terminator
# already visited
return
visited.add(node)
# process current node here.
...
for next_node in node.children():
if next_node not in visited:
dfs(next_node, visited)
```
```python
# 非递归写法
def DFS(self, root):
if tree.root is None:
return []
visited, stack = [], [root]
while stack:
node = stack.pop()
visited.add(node)
process (node)
# 生成相关的节点
nodes = generate_related_nodes(node)
stack.push(nodes)
# other processing work
...
```
- BFS 代码模板
```python
def BFS(root):
visited = set()
queue = []
queue.append([root])
while queue:
node = queue.pop()
visited.add(node)
process(node)
nodes = generate_related_nodes(node)
queue.push(nodes)
# other processing work
```
```java
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public List> levelOrder(TreeNode root) {
List> allResults = new ArrayList<>();
if (root == null) {
return allResults;
}
Queue nodes = new LinkedList<>();
nodes.add(root);
while (!nodes.isEmpty()) {
int size = nodes.size();
List results = new ArrayList<>();
for (int i = 0; i < size; i++) {
TreeNode node = nodes.poll();
results.add(node.val);
if (node.left != null) {
nodes.add(node.left);
}
if (node.right != null) {
nodes.add(node.right);
}
}
allResults.add(results);
}
return allResults;
}
```
· [DFS 代码模板(递归写法、非递归写法)](http://shimo.im/docs/ddgwCccJQKxkrcTq)
· [BFS 代码模板](http://shimo.im/docs/P8TqKHGKt3ytkYYd)
### 实战
- [ ] #### [102. 二叉树的层序遍历](https://leetcode-cn.com/problems/binary-tree-level-order-traversal/)
- [ ] #### [433. 最小基因变化](https://leetcode-cn.com/problems/minimum-genetic-mutation/)
- [ ] #### [22. 括号生成](https://leetcode-cn.com/problems/generate-parentheses/)
- [ ] #### [515. 在每个树行中找最大值](https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/)
### 课后
- [ ] #### [127. 单词接龙](https://leetcode-cn.com/problems/word-ladder/)
- [ ] #### [126. 单词接龙 II](https://leetcode-cn.com/problems/word-ladder-ii/)
- [ ] #### [200. 岛屿数量](https://leetcode-cn.com/problems/number-of-islands/)
- [ ] #### [529. 扫雷游戏](https://leetcode-cn.com/problems/minesweeper/)
## 贪心算法
- [ ] #### [322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)
· [动态规划定义](https://zh.wikipedia.org/wiki/动态规划)
### 课后
- [ ] #### [860. 柠檬水找零](https://leetcode-cn.com/problems/lemonade-change/)
- [ ] #### [122. 买卖股票的最佳时机 II](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/)
- [ ] #### [455. 分发饼干](https://leetcode-cn.com/problems/assign-cookies/)
- [ ] #### [874. 模拟行走机器人](https://leetcode-cn.com/problems/walking-robot-simulation/)
- [ ] #### [55. 跳跃游戏](https://leetcode-cn.com/problems/jump-game/)
- [ ] #### [45. 跳跃游戏 II](https://leetcode-cn.com/problems/jump-game-ii/)
## 二分查找
· [二分查找代码模板](https://shimo.im/docs/hjQqRQkGgwd9g36J)
· [Fast InvSqrt() 扩展阅读](https://www.beyond3d.com/content/articles/8/)
### 实战
- [ ] #### [69. Sqrt(x)](https://leetcode-cn.com/problems/sqrtx/)
- [ ] #### [367. 有效的完全平方数](https://leetcode-cn.com/problems/valid-perfect-square/)
### 课后
- [ ] #### [33. 搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/)
- [ ] #### [74. 搜索二维矩阵](https://leetcode-cn.com/problems/search-a-2d-matrix/)
- [ ] #### [153. 寻找旋转排序数组中的最小值](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/)
## 动态规划
· [递归代码模板](http://shimo.im/docs/DjqqGCT3xqDYwPyY/)
· [分治代码模板](http://shimo.im/docs/3xvghYh3JJPKwdvt/)
· [动态规划定义](https://en.wikipedia.org/wiki/Dynamic_programming)
- [ ] #### [62. 不同路径](https://leetcode-cn.com/problems/unique-paths/)
- [ ] #### [63. 不同路径 II](https://leetcode-cn.com/problems/unique-paths-ii/)
- [ ] #### [1143. 最长公共子序列](https://leetcode-cn.com/problems/longest-common-subsequence/)
· [MIT 动态规划课程最短路径算法](https://www.bilibili.com/video/av53233912?from=search&seid=2847395688604491997)
### 实战
- [ ] #### [70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)
- [ ] #### [120. 三角形最小路径和](https://leetcode-cn.com/problems/triangle/)
- [ ] [120. Triangle](https://leetcode.com/problems/triangle/)
- [ ] #### [53. 最大子数组和](https://leetcode-cn.com/problems/maximum-subarray/)
- [ ] #### [152. 乘积最大子数组](https://leetcode-cn.com/problems/maximum-product-subarray/)
- [ ] [322. Coin Change](https://leetcode.com/problems/coin-change/description/)
- [ ] #### [198. 打家劫舍](https://leetcode-cn.com/problems/house-robber/)
- [ ] #### [213. 打家劫舍 II](https://leetcode-cn.com/problems/house-robber-ii/)
- [ ] #### [121. 买卖股票的最佳时机](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)
- [ ] #### [122. 买卖股票的最佳时机 II](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/)
- [ ] #### [123. 买卖股票的最佳时机 III](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/)
- [ ] #### [309. 最佳买卖股票时机含冷冻期](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/)
- [ ] #### [188. 买卖股票的最佳时机 IV](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/)
- [ ] #### [714. 买卖股票的最佳时机含手续费](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/)
- [ ] #### [121. 买卖股票的最佳时机](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)
### 高级DP实战
- [ ] #### [279. 完全平方数](https://leetcode-cn.com/problems/perfect-squares/)
- [ ] #### [72. 编辑距离](https://leetcode-cn.com/problems/edit-distance/) 重点
- [ ] #### [55. 跳跃游戏](https://leetcode-cn.com/problems/jump-game/)
- [ ] #### [45. 跳跃游戏 II](https://leetcode-cn.com/problems/jump-game-ii/)
- [ ] #### [62. 不同路径](https://leetcode-cn.com/problems/unique-paths/)
- [ ] #### [63. 不同路径 II](https://leetcode-cn.com/problems/unique-paths-ii/)
- [ ] #### [980. 不同路径 III](https://leetcode-cn.com/problems/unique-paths-iii/)
- [ ] #### [322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)
- [ ] #### [518. 零钱兑换 II](https://leetcode-cn.com/problems/coin-change-2/)
### 课后作业
- [ ] #### [32. 最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/)
- [ ] #### [64. 最小路径和](https://leetcode-cn.com/problems/minimum-path-sum/)
- [ ] #### [72. 编辑距离](https://leetcode-cn.com/problems/edit-distance/)
- [ ] #### [91. 解码方法](https://leetcode-cn.com/problems/decode-ways/)
- [ ] #### [221. 最大正方形](https://leetcode-cn.com/problems/maximal-square/)
- [ ] #### [363. 矩形区域不超过 K 的最大数值和](https://leetcode-cn.com/problems/max-sum-of-rectangle-no-larger-than-k/)
- [ ] #### [403. 青蛙过河](https://leetcode-cn.com/problems/frog-jump/)
- [ ] #### [410. 分割数组的最大值](https://leetcode-cn.com/problems/split-array-largest-sum/)
- [ ] #### [552. 学生出勤记录 II](https://leetcode-cn.com/problems/student-attendance-record-ii/)
- [ ] #### [621. 任务调度器](https://leetcode-cn.com/problems/task-scheduler/)
- [ ] #### [647. 回文子串](https://leetcode-cn.com/problems/palindromic-substrings/)
- [ ] #### [76. 最小覆盖子串](https://leetcode-cn.com/problems/minimum-window-substring/)
- [ ] #### [312. 戳气球](https://leetcode-cn.com/problems/burst-balloons/)
## 字典树和并查集
- [ ] #### [102. 二叉树的层序遍历](https://leetcode-cn.com/problems/binary-tree-level-order-traversal/)
- [ ] #### [208. 实现 Trie (前缀树)](https://leetcode-cn.com/problems/implement-trie-prefix-tree/)
· [Tire 树代码模板](https://shimo.im/docs/Pk6vPY3HJ9hKkh33)
### 实战
- [ ] #### [208. 实现 Trie (前缀树)](https://leetcode-cn.com/problems/implement-trie-prefix-tree/)
- [ ] #### [212. 单词搜索 II](https://leetcode-cn.com/problems/word-search-ii/)
- [ ] #### [200. 岛屿数量](https://leetcode-cn.com/problems/number-of-islands/)
· [并查集代码模板](https://shimo.im/docs/ydPCH33xDhK9YwWR)
### 实战
- [ ] · https://leetcode-cn.com/problems/friend-circles
- [ ] #### [200. 岛屿数量](https://leetcode-cn.com/problems/number-of-islands/)
- [ ] #### [130. 被围绕的区域](https://leetcode-cn.com/problems/surrounded-regions/)
## 高级搜索
· [DFS 代码模板](http://shimo.im/docs/ddgwCccJQKxkrcTq/)
· [BFS 代码模板](http://shimo.im/docs/P8TqKHGKt3ytkYYd/)
· [AlphaZero Explained](https://nikcheerla.github.io/deeplearningschool/2018/01/01/AlphaZero-Explained/)
· [棋类复杂度](https://en.wikipedia.org/wiki/Game_complexity)
### 实战
- [ ] #### [70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)
- [ ] #### [22. 括号生成](https://leetcode-cn.com/problems/generate-parentheses/)
- [ ] #### [51. N 皇后](https://leetcode-cn.com/problems/n-queens/)
- [ ] #### [36. 有效的数独](https://leetcode-cn.com/problems/valid-sudoku/)
- [ ] #### [37. 解数独](https://leetcode-cn.com/problems/sudoku-solver/)
双向BFS
- [ ] #### [127. 单词接龙](https://leetcode-cn.com/problems/word-ladder/)
- [ ] #### [433. 最小基因变化](https://leetcode-cn.com/problems/minimum-genetic-mutation/)
启发式搜索
· [A* 代码模板](https://shimo.im/docs/CXvjHyWhpQcxXjcw/)
· [相似度测量方法](https://dataaspirant.com/2015/04/11/five-most-popular-similarity-measures-implementation-in-python/)
· [二进制矩阵中的最短路径的 A* 解法](https://leetcode.com/problems/shortest-path-in-binary-matrix/discuss/313347/A*-search-in-Python)
· [8 puzzles 解法比较](https://zxi.mytechroad.com/blog/searching/8-puzzles-bidirectional-astar-vs-bidirectional-bfs/)
### 实战
- [ ] #### [1091. 二进制矩阵中的最短路径](https://leetcode-cn.com/problems/shortest-path-in-binary-matrix/)
- [ ] #### [773. 滑动谜题](https://leetcode-cn.com/problems/sliding-puzzle/)
- [ ] #### [37. 解数独](https://leetcode-cn.com/problems/sudoku-solver/)
## 红黑树和AVL树
· [平衡树](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
## 位运算
· [如何从十进制转换为二进制](https://zh.wikihow.com/从十进制转换为二进制)
· [N 皇后位运算代码示例](https://shimo.im/docs/rHTyt8hcpT6D9Tj8/)
### 实战
- [ ] #### [191. 位1的个数](https://leetcode-cn.com/problems/number-of-1-bits/)
- [ ] #### [231. 2 的幂](https://leetcode-cn.com/problems/power-of-two/)
- [ ] #### [190. 颠倒二进制位](https://leetcode-cn.com/problems/reverse-bits/)
- [ ] #### [51. N 皇后](https://leetcode-cn.com/problems/n-queens/)
- [ ] #### [52. N皇后 II](https://leetcode-cn.com/problems/n-queens-ii/)
- [ ] #### [338. 比特位计数](https://leetcode-cn.com/problems/counting-bits/)
## 布隆过滤器和LRU缓存
· [布隆过滤器的原理和实现](https://www.cnblogs.com/cpselvis/p/6265825.html)
· [使用布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重](https://blog.csdn.net/tianyaleixiaowu/article/details/74721877)
· [布隆过滤器 Python 代码示例](https://shimo.im/docs/xKwrcwrDxRv3QpKG/)
· [布隆过滤器 Python 实现示例](https://www.geeksforgeeks.org/bloom-filters-introduction-and-python-implementation/)
· [高性能布隆过滤器 Python 实现示例](https://github.com/jhgg/pybloof)
· [布隆过滤器 Java 实现示例 1](https://github.com/lovasoa/bloomfilter/blob/master/src/main/java/BloomFilter.java)
· [布隆过滤器 Java 实现示例 2](https://github.com/Baqend/Orestes-Bloomfilter)
· [Understanding the Meltdown exploit](https://www.sqlpassion.at/archive/2018/01/06/understanding-the-meltdown-exploit-in-my-own-simple-words/)
· [替换算法总揽](https://en.wikipedia.org/wiki/Cache_replacement_policies)
· [LRU Cache Python 代码示例](https://shimo.im/docs/tTxRkGwJpXG6WkGY/)
### 实战
- [ ] #### [338. 比特位计数](https://leetcode-cn.com/problems/counting-bits/)
## 排序算法
· [十大经典排序算法](https://www.cnblogs.com/onepixel/p/7674659.html)
· [快速排序代码示例](https://shimo.im/docs/98KjvGwwGpTpYGKy/)
· [归并排序代码示例](https://shimo.im/docs/YqgG6vtdKwkXJkWx/)
· [堆排序代码示例](https://shimo.im/docs/6kRVHRphpgjHgCtx/)
· 直播课回顾: [https://pan.baidu.com/s/1sFuZ8GjDCXy5mPCNLZhHxw ](https://pan.baidu.com/s/1sFuZ8GjDCXy5mPCNLZhHxw)提取码: 2rdy
· [十大经典排序算法](https://www.cnblogs.com/onepixel/p/7674659.html)
· [9 种经典排序算法可视化动画](https://www.bilibili.com/video/av25136272)
· [6 分钟看完 15 种排序算法动画展示](https://www.bilibili.com/video/av63851336)
### 实战
- [ ] #### [1122. 数组的相对排序](https://leetcode-cn.com/problems/relative-sort-array/)
- [ ] #### [242. 有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/)
- [ ] https://leetcode-cn.com/problems/design-a-leaderboard/
- [ ] #### [56. 合并区间](https://leetcode-cn.com/problems/merge-intervals/)
- [ ] #### [493. 翻转对](https://leetcode-cn.com/problems/reverse-pairs/)
## 高级动态规划
- [ ] #### [70. 爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)
- [ ] #### [62. 不同路径](https://leetcode-cn.com/problems/unique-paths/)
- [ ] #### [198. 打家劫舍](https://leetcode-cn.com/problems/house-robber/)
- [ ] #### [64. 最小路径和](https://leetcode-cn.com/problems/minimum-path-sum/)
- [ ] #### [121. 买卖股票的最佳时机](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)
### 课后
- [ ] #### [300. 最长递增子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence/)
- [ ] #### [91. 解码方法](https://leetcode-cn.com/problems/decode-ways/)
- [ ] #### [32. 最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/)
- [ ] #### [85. 最大矩形](https://leetcode-cn.com/problems/maximal-rectangle/)
- [ ] #### [115. 不同的子序列](https://leetcode-cn.com/problems/distinct-subsequences/)
- [ ] #### [818. 赛车](https://leetcode-cn.com/problems/race-car/)
## 字符串算法
· [不可变字符串](https://lemire.me/blog/2017/07/07/are-your-strings-immutable/)
· [Atoi 代码示例](https://shimo.im/docs/KkDKkpWxjjrJXdpY/)
字符串基础问题
- [ ] #### [709. 转换成小写字母](https://leetcode-cn.com/problems/to-lower-case/)
- [ ] #### [58. 最后一个单词的长度](https://leetcode-cn.com/problems/length-of-last-word/)
- [ ] #### [771. 宝石与石头](https://leetcode-cn.com/problems/jewels-and-stones/)
- [ ] #### [387. 字符串中的第一个唯一字符](https://leetcode-cn.com/problems/first-unique-character-in-a-string/)
- [ ] #### [8. 字符串转换整数 (atoi)](https://leetcode-cn.com/problems/string-to-integer-atoi/)
字符串操作问题
- [ ] #### [14. 最长公共前缀](https://leetcode-cn.com/problems/longest-common-prefix/)
- [ ] #### [344. 反转字符串](https://leetcode-cn.com/problems/reverse-string/)
- [ ] #### [541. 反转字符串 II](https://leetcode-cn.com/problems/reverse-string-ii/)
- [ ] #### [151. 翻转字符串里的单词](https://leetcode-cn.com/problems/reverse-words-in-a-string/)
- [ ] #### [557. 反转字符串中的单词 III](https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/)
- [ ] #### [917. 仅仅反转字母](https://leetcode-cn.com/problems/reverse-only-letters/)
异位词问题
- [ ] #### [242. 有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/)
- [ ] #### [49. 字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/)
- [ ] #### [438. 找到字符串中所有字母异位词](https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/)
回文串问题
- [ ] #### [125. 验证回文串](https://leetcode-cn.com/problems/valid-palindrome/)
- [ ] #### [680. 验证回文字符串 Ⅱ](https://leetcode-cn.com/problems/valid-palindrome-ii/)
- [ ] #### [5. 最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/)
最长子串、子序列问题
- [ ] #### [1143. 最长公共子序列](https://leetcode-cn.com/problems/longest-common-subsequence/)
- [ ] #### [72. 编辑距离](https://leetcode-cn.com/problems/edit-distance/)
- [ ] #### [5. 最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/)
字符串 +DP 问题
- [ ] #### [10. 正则表达式匹配](https://leetcode-cn.com/problems/regular-expression-matching/)
- [ ] https://leetcode-cn.com/problems/regular-expression-matching/solution/ji-yu-guan-fang-ti-jie-gen-xiang-xi-de-jiang-jie-b/
- [ ] #### [44. 通配符匹配](https://leetcode-cn.com/problems/wildcard-matching/)
- [ ] #### [115. 不同的子序列](https://leetcode-cn.com/problems/distinct-subsequences/)
参考链接
· [Boyer-Moore 算法](http://xn--https-ni33a//www.ruanyifeng.com/blog/2013/05/boyer-moore_string_search_algorithm.html)
· [Sunday 算法](https://blog.csdn.net/u012505432/article/details/52210975)
· [字符串匹配暴力法代码示例](https://shimo.im/docs/dQDxQW8yXPXxh3Hg/)
· [Rabin-Karp 代码示例](https://shimo.im/docs/KXDdkT99TVtXvTXP/)
· [KMP 字符串匹配算法视频](https://www.bilibili.com/video/av11866460?from=search&seid=17425875345653862171)
· [字符串匹配的 KMP 算法](http://www.ruanyifeng.com/blog/2013/05/Knuth–Morris–Pratt_algorithm.html)
### 课后
- [ ] #### [387. 字符串中的第一个唯一字符](https://leetcode-cn.com/problems/first-unique-character-in-a-string/)
- [ ] #### [8. 字符串转换整数 (atoi)](https://leetcode-cn.com/problems/string-to-integer-atoi/)
- [ ] #### [541. 反转字符串 II](https://leetcode-cn.com/problems/reverse-string-ii/)
- [ ] #### [151. 翻转字符串里的单词](https://leetcode-cn.com/problems/reverse-words-in-a-string/)
- [ ] #### [557. 反转字符串中的单词 III](https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/)
- [ ] #### [917. 仅仅反转字母](https://leetcode-cn.com/problems/reverse-only-letters/)
- [ ] #### [438. 找到字符串中所有字母异位词](https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/)
- [ ] #### [5. 最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/)
- [ ] #### [205. 同构字符串](https://leetcode-cn.com/problems/isomorphic-strings/)
- [ ] #### [680. 验证回文字符串 Ⅱ](https://leetcode-cn.com/problems/valid-palindrome-ii/)
- [ ] #### [44. 通配符匹配](https://leetcode-cn.com/problems/wildcard-matching/)
- [ ] #### [32. 最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/)
- [ ] #### [115. 不同的子序列](https://leetcode-cn.com/problems/distinct-subsequences/)