Algorithm:每周至少做一个leetcode的算法题;
Review:阅读并点评至少一篇英文技术文章;
Tip/Techni:学习至少一个技术技巧;
Share:分享一篇有观点和思考的技术文章。
A
28.Implement strStr()
Implement strStr().
题目描述:
Returns a pointer to the first occurrence of needle in haystack, ornullif needle is not part of haystack.
解题思路:
1.暴力求解
代码实现:
2.标准KMP算法
(1)先对模式串needle做“自匹配”,即求出模式串前缀与后缀中重复部分,将重复信息保存在next数组中。
(2)依据next数组信息,进行haystack与needle的匹配。
在匹配过程中,若发生不匹配的情况,如果next[j]>=0,则目标串的指针i不变,将模式串的指针j移动到next[j]的位置继续进行匹配;若next[j]=-1,则将i右移1位,并将j置0,继续进行比较。
kmp算法的关键在于求算next[]数组的值,即求算模式串每个位置处的最长后缀与前缀相同的长度。
代码实现:
R
Inline Functions in C++ - GeeksforGeeks
讲述cpp内联函数的优缺点,介绍其功能特性。
T
vscode快捷键学习
官方文档传送门Visual Studio Code Key Bindings
for linux版本https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf
Ubuntu下Vscode的实用快捷键
代码格式化快捷键: ctrl+shift+i,不用全选或者选中。(巨实用)
单行注释切换:ctrl + /
添加单行注释:组合键 ctrl+k,ctrl+c
取消单行注释:组合键 ctrl+k,ctrl+u
返回上一步:Ctrl + alt + -(最后一个是减号键,下同)
返回下一步:Ctrl + shift + -
再附几篇关于vscode快捷键的博客
传送门:vscode: Visual Studio Code 常用快捷键 - 魚魚 - 博客园
Visual Studio Code 快捷键大全(linux版)-CSDN下
GitHub - LeonWuV/FE-blog-repository: 我的前端学习笔记仓库
S
1.什么是软件架构。2.建筑师做什么软件。
3.一些重要的决定都是软件工程师。
4.我们为什么需要软件架构。
Quick Introduction to Software Architecture - DZone Microservices