04 2022 档案
摘要:事务隔离:为什么你改了我还看不见? 简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。你现在知道,MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyI
阅读全文
摘要:日志系统:一条SQL更新语句是如何执行的? 与查询流程不一样的是,更新流程还涉及两个重要的日志模块,它们正是我们今天要讨论的主角:redo log(重做日志)和 binlog(归档日志)。 重要的日志模块:redo log 在 MySQL 里有这个问题,如果每一次的更新操作都需要写进磁盘,然后磁盘也
阅读全文
摘要:基本架构示意图 下面是 MySQL 的基本架构示意图,从中可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及
阅读全文
摘要:括号字符串的有效性和最长有效长度 题目:括号字符串的有效性 & 括号字符串的最长有效长度 《程序员代码面试指南》第90题 P290 难度:原问题 士★☆☆☆ 补充问题 尉★★☆☆ 原问题。很简单,判断过程如下: 从左到右遍历字符串str,判断每一个字符是不是'('和')'。如果不是,就直接返回fal
阅读全文
摘要:翻转字符串 题目:翻转字符串(1) & 翻转字符串(2) 《程序员代码面试指南》第84题 P267 难度:士★☆☆☆ 太菜了,想半天想不出来额外空间复杂度O(1)的方法。 原问题,先把chas整体逆序,然后再遍历chas找到每一个单词,把每个单词里的字符逆序即可。 public void rotat
阅读全文
摘要:字符串的调整与替换 题目:字符串的调整II & 字符串的调整I 《程序员代码面试指南》第83题 P265 难度:士★☆☆☆ 原问题:遍历一遍,得到chas的左半区的长度len和左半区的空格数num。当空格被“%20”替代后,长度将是len×2+num。然后从左半区的最后一个字符开始逆序遍历,同时将字
阅读全文
摘要:删除多余字符得到字典序最小的字符串 题目:删除多余的字符得到字典序最小的字符串 《程序员代码面试指南》第86题 P276 难度:尉★★☆☆ 不太好做的题。。 概括一下思路,根据字频统计,遍历str时找到一个前缀str[0..R](遍历到字符的字频减1,某一种字符的字频统计为0时,停止遍历),然后在s
阅读全文
摘要:判断字符数组中是否所有的字符都只出现过一次 题目:判断数组中所有的数字是否只出现一次 《程序员代码面试指南》第81题 P261 难度:要求1:士★☆☆☆ 要求2:尉★★☆☆ 要求1很简单,时间复杂度为O(N),遍历一遍chas,用map记录每种字符的出现情况即可。书中使用了长度固定的数组,也可以使用
阅读全文
摘要:找到字符串的最长无重复字符子串 题目:找到字符串的最长无重复字符子串 《程序员代码面试指南》第94题 P300 难度:尉★★☆☆ 首先是几个变量的介绍:哈希表map,key表示某个字符,value为这个字符最近一次出现的位置。整型变量pre,如果当前遍历到字符str[i],pre表示在必须以str[
阅读全文
摘要:数组中两个字符串的最小距离 题目:数组中两个字符串的最小距离 《程序员代码面试指南》第87题 P279 难度:尉★★☆☆ 这题原问题很简单。从左到右遍历strs,用变量last1、last2分别记录最近一次出现的str1、str2的位置。如果遍历到str1,那么i-last2的值就是当前str1和左
阅读全文
摘要:回文最少分割数 题目:回文最少分割 《程序员代码面试指南》第98题 P314 难度:尉★★☆☆ 少有的做不出来的尉难度的题,但是这题在力扣上明明是hard!!!(不懂牛客&这本书怎么把这题定成简单(尉)的)。而且这题明明是动态规划题,却放在了字符串这一章,真的想不到用动态规划去做。就算知道用动态规划
阅读全文
摘要:字典树(前缀树)的实现 题目:字典树的实现 《程序员代码面试指南》第100题 P320 难度:尉★★☆☆ 字典树是一种树形结构,优点是利用字符串的公共前缀来节约存储空间,比如加入“abc”、“abcd”、“abd”、“b”、“bcd”、“efg”、“hik”之后,字典树如图: 字典树的基本性质如下:
阅读全文
摘要:判断两个字符串是否互为变形词 题目:判断两个字符串是否互为变形词 《程序员代码面试指南》第77题 P253 难度:士★☆☆☆ 这题很快做出来,不过和题解还是有差距的。 如果字符串str1和str2长度不同,直接返回false。如果长度相同,申请一个长度为256的整型数组map(假设字符的编码值在0~
阅读全文