![](https://img-blog.csdnimg.cn/3a6aeadc04ac410b82e2ef4a6e117a76.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
字符串
文章平均质量分 51
字符串
zzu菜
努力努力在努力!
展开
-
98. 验证二叉搜索树
98. 验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4 。思考根据这个二叉树的性质,中序遍历为有序序原创 2022-04-18 10:23:20 · 362 阅读 · 0 评论 -
700. 二叉搜索树中的搜索
700. 二叉搜索树中的搜索给定二叉搜索树(BST)的根节点 root 和一个整数值 val。你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。示例 1:输入:root = [4,2,7,1,3], val = 2输出:[2,1,3]Example 2:输入:root = [4,2,7,1,3], val = 5输出:[]思考简单题乱杀/** * Definition for a binary tree node.原创 2022-04-15 15:26:54 · 290 阅读 · 0 评论 -
459. 重复的子字符串-KMP算法
459. 重复的子字符串给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。示例 1:输入: s = “abab”输出: true解释: 可由子串 “ab” 重复两次构成。示例 2:输入: s = “aba”输出: false示例 3:输入: s = “abcabcabcabc”输出: true解释: 可由子串 “abc” 重复四次构成。 (或子串 “abcabc” 重复两次构成。)思考如果字符串s是由多个子串重复组成,那么该字符串s最长相等的前缀后缀为组成该原创 2022-03-26 21:45:01 · 812 阅读 · 0 评论 -
28. 实现 strStr()-KMP算法
28. 实现 strStr()-KMP算法实现 strStr() 函数。给你两个字符串 haystack 和needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例原创 2022-03-24 21:28:38 · 500 阅读 · 0 评论 -
KMP算法-字符串匹配(浅显易懂)
KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。本篇将以如下顺序来讲解KMP,什么是KMPKMP有什么用什么是前缀表为什么一定要用前缀表如何计算前缀表前缀表与next数组使用next数组来匹配时间复杂度分析构造next数组使用next数组来做匹配前缀表统一减一 C++代码实现前缀表(不减一)C++实现总结本篇内容参考和总结了代码随想录:https://programmercarl.com/0028.%E5%原创 2022-03-24 21:24:21 · 6108 阅读 · 3 评论 -
剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”思考简单题找回自信把数组转化成字符数组chars操作创建一个原创 2022-03-22 16:38:41 · 58 阅读 · 0 评论 -
977. 有序数组的平方
977. 有序数组的平方示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]思考简单题嘎嘎乱杀!双指针法leftPoint:指向最左端rightPoint:指向最右端利用两个指针比较出最大值并保存到新创建的数值ints中,移动指针,直到完全遍历数组cl原创 2022-03-22 15:32:27 · 157 阅读 · 0 评论 -
151. 颠倒字符串中的单词
151. 颠倒字符串中的单词给你一个字符串 s ,颠倒字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."思考利用字符串自带的方法s原创 2022-03-22 14:48:10 · 154 阅读 · 0 评论 -
541. 反转字符串 II
541. 反转字符串 II给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = “abcdefg”, k = 2输出:“bacdfeg”示例 2:输入:s = “abcd”, k = 2输出:“bacd”思考这次自己把简单问题复杂化了,也懒得重写了,就这吧设置两原创 2022-03-21 16:37:16 · 106 阅读 · 0 评论 -
344. 反转字符串
344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]思考简单题乱杀这里使用双指针法leftPo原创 2022-03-21 10:27:20 · 82 阅读 · 0 评论