代码随想录算法训练营第八天 | Leetcode151.翻转字符串里的单词 | 卡码网:55.右旋转字符串 | 28.实现strStr() | 459.重复的子字符串

张开发
2026/4/14 1:18:43 15 分钟阅读

分享文章

代码随想录算法训练营第八天 | Leetcode151.翻转字符串里的单词 | 卡码网:55.右旋转字符串 | 28.实现strStr() | 459.重复的子字符串
day8 – 字符串part02151.翻转字符串里的单词力扣题目链接151. 反转字符串中的单词 - 力扣LeetCode文章讲解151.翻转字符串里的单词 | 双指针 | 字符串反转 | 单词翻转 | 代码随想录视频讲解字符串复杂操作拿捏了 | LeetCode:151.翻转字符串里的单词_哔哩哔哩_bilibili用库方法的一行写法…publicclassSolution{publicstringReverseWords(strings){returnstring.Join( ,s.Trim().Split( ,StringSplitOptions.RemoveEmptyEntries).Reverse());}}我的想法通过记录每个单词的始末下标实现同样功能publicclassSolution{publicstringReverseWords(strings){ListintrecordnewListint();intns.Length;inti0;// 跳过前导空格while(ins[i] )i;while(in){// 单词起始intstarti;while(ins[i]! )i;intendi-1;record.Add(start);record.Add(end);// 跳过中间空格while(ins[i] )i;}// 现在 record 中存储[start1, end1, start2, end2, ...]// 反转单词顺序将每两个一组起始和结束逆序遍历char[]ansnewchar[n];intpos0;for(intjrecord.Count-2;j0;j-2){intstartrecord[j];intendrecord[j1];for(intkstart;kend;k){ans[pos]s[k];}// 如果不是最后一个单词添加空格if(j0){ans[pos] ;}}// 结果可能比原始字符串短去掉了多余空格所以需要截取returnnewstring(ans,0,pos);}}卡码网55.右旋转字符串题目链接55. 右旋字符串第八期模拟笔试文章讲解右旋字符串 | 整体反转 | 局部反转 | 代码随想录思路是先将整体都逆序翻转再将部分翻转上一题也可以这么做​//TODO28.实现strStr()推荐的KMP算法动画演示最浅显易懂的 KMP 算法讲解_哔哩哔哩_bilibili平台bilibili作者Ross-Ning力扣题目链接28. 找出字符串中第一个匹配项的下标 - 力扣LeetCode文章讲解28. 实现 strStr() | KMP | 前缀表 | 字符串匹配 | 代码随想录视频讲解帮你把KMP算法学个通透理论篇_哔哩哔哩_bilibili帮你把KMP算法学个通透求next数组代码篇_哔哩哔哩_bilibili​//TODO459.重复的子字符串力扣题目链接459. 重复的子字符串 - 力扣LeetCode文章讲解459.重复的子字符串 | KMP算法 | 重复子串 | 最长相同前后缀 | 代码随想录视频链接字符串这么玩可有点难度 | LeetCode459.重复的子字符串_哔哩哔哩_bilibili​//TODO字符串总结字符串总结篇 | 双指针法 | KMP | 前缀表 | 代码随想录双指针总结双指针总结篇 | 双指针法 | 快慢指针 | 代码随想录

更多文章