文和906
文和906
全部文章
题解
未归档(4)
项目笔记(5)
归档
标签
去牛客网
登录
/
注册
文和906的博客
全部文章
/ 题解
(共11篇)
题解 | #字符流中第一个不重复的字符#
与之前的#第一个只出现一次的字符#十分相似的题。故采用了相同的思路来做。维护一个私有的全局字符串str,每次Insert()都将输入的字符串添加到该str之后。调用FirstAppearingOnce()时,遍历str,找到其中第一个只出现一次的字符。其中找第一个只出现一次的字符的方法则使用了与上面...
C++
字符串
2021-10-26
0
364
题解 | #左旋转字符串#
直接法,模拟字符串左旋转的过程。先判断n与字符串长度的关系。当n等于字符串长度时,不用处理,直接返回原字符串。当n大于字符串长度时,另n等于n与字符串相减之差。当n小于字符串长度时,不做处理。新建一个数组,用于保存字符串前n个字符,这些字符会因左旋而插入字符串尾部。将str从第0位开始,使str[i...
C++
字符串
2021-10-26
0
365
题解 | #替换空格#
遍历字符串,遇到空格就替换。核心是string.insert()函数的使用。时间复杂度O(n),空间复杂度O(1)。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * ...
C++
字符串
2021-10-22
10
611
题解 | #第一个只出现一次的字符#
使用一个二维数组来记录遍历过的字符的出现次数以及出现顺序。将大写小写字母分开存储,这么做是为了便于处理。在遍历一次字符串,得到了记录有信息的而为数组后,遍历两个二维数组,分别得出最先出现的小写字母以及最先出现的大写字母。找到这两个字母在字符串中首次出现的位置,返回这两个位置中的小值。这么做时间复杂度...
C++
字符串
2021-10-22
0
350
题解 | #表示数值的字符串#
写三个方法分别判断是否表示整数、小数以及科学计数法。其中,判断小数的方法中调用判断整数的方法协助判断,判断科学计数法的方法中调用判断小数以及判断整数的方法协助判断。达到代码复用的目的。总体来说没有技术难点,就是string.substr()这个方法有个小坑。两个参数,第一个为截取的起点下标,第二个为...
C++
字符串
2021-10-21
0
316
题解 | #把字符串转换成整数#
遍历字符串,在第一个字符处判断是否为正负号,之后依此判断是否有非数字字符,将字符作为数字加入int数组中。最后得到一个数组,其中装有我们所需要的数字,遍历该数组,将该数组中的数字转为一个整数即可。实际上这里用另一种做法,每次都加上新的数字然后乘10,也可以,这种做法不需要辅助数组。 class So...
C++
字符串
2021-10-21
0
355
题解 | #字符串的排列#
刚看到题其实稍微有点蒙,不过看了题目配的图就很简单了。图里已经给出了一种解题思路。按顺序遍历遍历字符串,对每一个字符都调换它以及大于等于它的下标的字符,将新得到的字符串压栈,并对新字符串也执行该操作,直到遍历完整个字符串。由于调用的层数比较深,这里选择递归的方法来实现。传入参数中的index为开始交...
C++
字符串
递归
排列组合
2021-10-13
0
393
题解 | #翻转单词序列#
难度较低的题目。在经历了前面的字符串处理地狱之后,这种题目我看过之后心里毫无波澜,甚至还有点想笑w。言归正传,总体的思路是:将string作为char[]遍历,遇到空格则切词,并将切下的词入栈。最后按出栈顺序将字符串拼好即可。需要注意空格的处理方式,这里我的做法是每次切词都加上空格,对头尾特殊处理。...
C++
字符串
栈
2021-10-12
0
380
题解 | #序列化二叉树#
这道题本身挺简单的,但是坑是真的多,给我整破防了。 先说一下大概的思路,直接用层序遍历来序列化。序列化的时候使用一个队列来辅助将结点值拼接到字符串上,节点为空则拼接#。反序列化时同理,使用队列来辅助反序列化,创建好的节点先入队,并且查看队头结点的情况,若其左结点为空,则将该结点设为队头结点的左结点,...
C++
字符串
二叉树
队列
2021-10-11
0
432
题解 | #最长回文子串#
比较经典的回文判断题型。由于题目要求时间复杂度为O(n^2),故考虑较为直接的暴力解法。使用一个二重循环,第一重循环i从数组的第一个元素开始,第二重循环j从数组的最后一个元素开始,每趟循环都判断从i到j是否构成回文,若构成,则直接退出内层循环,在外层更新最大值。当i到j的字符串长度小于最大值时,直接...
C++
动态规划
字符串
2021-09-27
0
435
首页
上一页
1
2
下一页
末页