欢迎光临散文网 会员登陆 & 注册

刷题第五天

2023-08-06 23:12 作者:叶荜莉  | 我要投稿

344. 反转字符串:

简单题,双指针l和r,l在前,r在后,交换l和r值,向中间靠近。

541. 反转字符串 II:

对字符串的处理不熟悉。学到了reverse函数。

每次从2k位置开始reverse k个字符,如果末尾不满k个,直接置换到end。

剑指 Offer 05. 替换空格:

学习了erase函数和insert函数。

151. 反转字符串中的单词:

感觉这一题纯纯的考察处理字符串处理能力。我使用了pos标记单词的第一个字母的下标。stack<string>存分割下来的每一个单词。查找每一个字符,如果字符是空格的,如果此时的i不等于pos说明pos到i之间有一个单词,将单词记录下来,再让pos=i+1。

不过这样做有一个问题,如果字符串在末尾有单独的一个字符作为单词,那么无法被录入,因为此时pos==i。最后一个单词的最后一个字母同样无法被录入。

我尝试过让i等于末尾时+1,但会导致如果最后一个字符是空格的话,空格也会录入。最后,我是在一开始,就在初始字符串后面先加上一个空格,问题就全部解决了。

459. 重复的子字符串:

这题可以合并两个s,去掉s的头尾(ss),如果s是多个子串组成的话,那么ss中可以找到s。

20. 有效的括号:

经典括号匹配题,用栈。

1047. 删除字符串中的所有相邻重复项:

用栈,遇到top相同的,循环不断pop出去,直到top不一样。

用栈需要特别注意,用top遇到栈empty的时候,会报错!!!一定要特别注意,top,pop的时候,栈一定不能为空!!!

 



刷题第五天的评论 (共 条)

分享到微博请遵守国家法律