
字符串相关
文章平均质量分 68
有关字符串的编程题
Forward♞
这个作者很懒,什么都没留下…
展开
-
每日一题——找出字符串中第一个匹配项的下标(实现strStr)
tips:这道题如果用暴力解法,其时间复杂度为O(M * N),其实正确的解法应该是KMP算法,这样可以将时间复杂度降为O(N),但由于KMP算法较难理解,笔者还未完全悟透,故以后再和大家分享KMP算法,和本题如何用KMP算法求解。接着就开始将字符串needle和字符串haystack开始匹配,直至遍历完字符串haystack。首先计算字符串haystack和字符串needle的长度。原创 2023-05-07 23:08:12 · 407 阅读 · 1 评论 -
每日一题——反转字符串中的单词
当然,最容易想到的还是暴力解法,即碰到字符串串首空格(字符串开头就是空格)和单词之间的重复空格,就不断将字符串的元素前移,直至覆盖多余空格,但可想而知,这样做的效率不高。接下来就是要考虑题目最恼火的限制条件:不允许多余空格的出现,即只允许单词之间出现一个空格,多余的空格须全部删除。中讲过,只不过上一次我们处理的是数组,而这一次处理的时字符串(实际上字符串也是数组)我们首先不考虑太多限制因素,先看如何实现字符串中单词的反转。其实比较好的做法其实我们已经在。原创 2023-05-05 19:44:03 · 583 阅读 · 0 评论 -
每日一题——删除字符串中的所有相邻重复项
那么,我们怎么保存遍历字符的前面一个元素呢?称为进栈/压栈/入栈,其位置在。栈:是一种特殊的线性表,其。称为出栈,其位置也在。原创 2023-05-29 17:35:12 · 781 阅读 · 2 评论 -
每日一题——反转字符串—II
想必大家对字符串的反转已经熟悉了,那么这一题我们思考的主要是如何确定字符串反转的区间,也就是说如何做到每隔2k个字符就反转前k个字符,难道要用计数器来统计2k和它的前k个字符吗?这样做当然可以做出来,但显然效率不高。看完上面的例子,就差不多能明白题目要我们做什么了,做了。我们先来举几个例子来理解题目意思。原创 2023-05-02 15:33:19 · 765 阅读 · 0 评论 -
每日一题——替换空格
不额外消耗内存,也就是说我们在填充空格之前就要直到填充后数组的大小,这个好办,我们可以先遍历原数组,记录空格的总个数count,那么填充后数组的大小就是: 原数组的大小 + count * 2。在方法一中定义新字符串数组时,static修饰符必须加上,否则系统会提示错误,这涉及到栈帧的知识,笔者目前还在学习中,其中原理还未摸透,故以后再和大家分享。如果我们跟方法一一样从前往后遍历字符串,碰到空格就填入“%20”,那么我们就要不断移动后面的所有元素,可想而知,这样的时间复杂度为O(n。原创 2023-05-04 21:10:37 · 86 阅读 · 0 评论 -
每日一题——重复的子字符串
注:本题的题解基本建立在KMP算法之上,对KMP算法不太了解的小伙伴可以参考这篇文章。原创 2023-06-01 15:01:25 · 708 阅读 · 1 评论 -
每日一题——逆波兰表达式求值(前缀、中缀、后缀表达式的说明,库函数atoi()的解析)
返回值:此值由将输入字符作为数字解析而生成。如果该输入无法转换为该类型的值,则atoi的返回值为 0。这篇博文多有参考,如果读者想对这个库函数有更深的了解,可以去看看大佬写的博客。缺陷分析:我们可以看到,tips:本篇对库函数。str即传入的字符串。原创 2023-05-31 23:21:13 · 776 阅读 · 1 评论 -
每日一题——反转字符串—I
【代码】每日一题——反转字符串—I。原创 2023-05-01 14:49:31 · 154 阅读 · 0 评论 -
每日一题——左旋转的字符串
对字符串前n个字符进行反转,再对余下的字符反转。先写一个反转字符串指定区域的函数。最后对整个字符串反转。原创 2023-05-06 12:42:35 · 135 阅读 · 1 评论