剑指offer67题-No61.序列化二叉树
序列化二叉树即找一种顺序存储二叉树的节点,并以相同的方式能够读取序列重新构建。 换种说法,就是遍历二叉树,记录每个节点,再以同样的方式遍历就可以还原二叉树。 PS:能基于序列化字符串单独还原树的情况: 层次遍历序列(需标记空节点)。 前序或后序遍历序列(需结合中序,或显式标记空节点,如 [1,2,null,null,3])。若序列化时未标记空节点,…
2025-6-16 16:07
|
|
2025-6-16 16:08
剑指offer67题-No54.字符流中第一个不重复的字符
字符串处理 哈希表。 #include <unordered_map> class Solution { public: //Insert one char from stringstream string s; unordered_map<char, int> mp; void Insert(char ch) { s += ch; m…
2025-6-05 14:04
|
|
2025-6-05 14:04
剑指offer67题-No53.表示数值的字符串
字符串处理 leetcode上精简的题解方法。 .出现正确情况:只出现一次,且在e的前面 e出现正确情况:只出现一次,且出现前有数字 +和-出现正确情况:只能在开头和e后一位 class Solution { public: bool isDigital(char x){ return x >= '0' && x <= '9'…
2025-6-05 14:03
|
|
2025-6-05 14:03
剑指offer67题-No49.字符串转化为整数
模拟题,感觉挺复杂的 class Solution { public: int myAtoi(string str) { int len = str.size(); int i = 0, flag = 1; long long base = 0; // 跳过前导空格 while (i < len && str[i] == ' …
2025-6-05 13:50
|
|
2025-6-05 13:52
剑指offer67题-No43-44.左旋转字符串、翻转单词序列
No43:简单的字符串处理。 string LeftRotateString(string str, int n) { // write code here if(str.size() == 0) return {}; n = n % str.size(); if(n == 0) return str; string res; for(int i …
2025-6-02 15:20
|
|
2025-6-02 15:20
剑指offer67题-No32.把数组排成最小的数
法1:重载比较运算符 如果字符串a拼接b的得到的数字大于b拼接a,那么肯定b应该排在a的前面,我们要就按照这样的次序将排序的比较重载就可以了。 PS:重载比较运算符,如何确定是升序还是降序?1. 核心规则 升序:当 a < b 返回 true 时,排序算法会将 a 放在 b 前面(即 a 比 b 小,按从小到大排列)。 降序:当 a > b …
2025-5-28 12:16
|
|
2025-5-28 12:16
剑指offer67题-No27.字符串的排列
类似dfs全排列问题。 有一道相似的题目,可以参考acwing的解析:AcWing 842. 排列数字--深度优先遍历代码+注释 - AcWing,题目如下: 给定一个整数 nn,将数字 1∼n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。 算法: 用 path 数组保存排列,当排列的长度为 n 时,是一种方案,输出。 …
2025-5-28 12:07
|
|
2025-5-28 12:08