「代码随想录算法训练营」第七天 | 字符串 part1
1.「代码随想录算法训练营」第二天 | 数组 part22.「代码随想录算法训练营」第三天 | 链表 part13.「代码随想录算法训练营」第四天 | 链表 part24.「代码随想录算法训练营」第一天(补) | 数组 part15.「代码随想录算法训练营」第五天 | 哈希表 part16.「代码随想录算法训练营」第六天 | 哈希表 part2
7.「代码随想录算法训练营」第七天 | 字符串 part1
8.「代码随想录算法训练营」第八天 | 字符串 part29.「代码随想录算法训练营」第九天 | 栈与队列 part110.「代码随想录算法训练营」第十天 | 栈与队列 part211.「代码随想录算法训练营」第十一天 | 二叉树 part112.「代码随想录算法训练营」第十二天 | 二叉树 part213.「代码随想录算法训练营」第十三天 | 二叉树 part314.「代码随想录算法训练营」第十四天 | 二叉树 part415.「代码随想录算法训练营」第十五天 | 二叉树 part516.「代码随想录算法训练营」第十六天 | 二叉树 part617.「代码随想录算法训练营」第十七天 | 二叉树 part718.「代码随想录算法训练营」第十八天 | 二叉树 part819.「代码随想录算法训练营」第十九天 | 回溯算法 part120.「代码随想录算法训练营」第二十天 | 回溯算法 part221.「代码随想录算法训练营」第二十一天 | 回溯算法 part322.「代码随想录算法训练营」第二十二天 | 回溯算法 part423.「代码随想录算法训练营」第二十三天 | 贪心算法 part124.「代码随想录算法训练营」第二十四天 | 贪心算法 part225.「代码随想录算法训练营」第二十五天 | 贪心算法 part326.「代码随想录算法训练营」第二十六天 | 贪心算法 part427.「代码随想录算法训练营」第二十七天 | 贪心算法 part528.「代码随想录算法训练营」第二十八天 | 动态规划 part129.「代码随想录算法训练营」第二十九天 | 动态规划 part230.「代码随想录算法训练营」第三十天 | 动态规划 part331.「代码随想录算法训练营」第三十一天 | 动态规划 part432.「代码随想录算法训练营」第三十二天 | 动态规划 part533.「代码随想录算法训练营」第三十三天 | 动态规划 part634.「代码随想录算法训练营」第三十四天 | 动态规划 part735.「代码随想录算法训练营」第三十五天 | 动态规划 part836.「代码随想录算法训练营」第三十六天 | 动态规划 part937.「代码随想录算法训练营」第三十七天 | 动态规划 part1038.「代码随想录算法训练营」第三十八天 | 动态规划 part1139.「代码随想录算法训练营」第三十九天 | 动态规划 part1240.「代码随想录算法训练营」第四十一天 | 单调栈 part141.「代码随想录算法训练营」第四十天 | 动态规划 part1342.「代码随想录算法训练营」第四十二天 | 单调栈 part243.「代码随想录算法训练营」第四十三天 | 图论 part144.「代码随想录算法训练营」第四十四天 | 图论 part245.「代码随想录算法训练营」第四十五天 | 图论 part346.「代码随想录算法训练营」第四十六天 | 图论 part447.「代码随想录算法训练营」第四十七天 | 图论 part548.「代码随想录算法训练营」第四十八天 | 图论 part649.「代码随想录算法训练营」第四十九天 | 图论 part750.「代码随想录算法训练营」第五十天 | 图论 part851.「代码随想录算法训练营」第五十一天 | 图论 part952.「代码随想录算法训练营」第五十二天 | 图论 part1053.「代码随想录算法训练营」完结!344. 反转字符串
题目链接:https://leetcode.cn/problems/reverse-string/
题目难度:简单
文章讲解:https://programmercarl.com/0344.反转字符串.html
视频讲解: https://www.bilibili.com/video/BV1fV4y17748
题目状态:过!
个人思路:
就是使用双指针,在right > left
的前提下将字符串遍历,并把right
和left
的值相互交换。
实现代码:
class Solution { public: void reverseString(vector<char>& s) { int left = 0; int right = s.size() - 1; while(right > left) { char tmp = s[left]; s[left] = s[right]; s[right] = tmp; left++; right--; } } };
541. 反转字符串 II
题目链接:https://leetcode.cn/problems/reverse-string-ii/
题目难度:简单
文章讲解:https://programmercarl.com/0541.反转字符串II.html
视频讲解: https://www.bilibili.com/video/BV1dT411j7NN
题目状态:过!!
个人思路:
看了半天的题目才看懂讲的什么意思,就是把字符串从前往后分为好几组,每组有k
个元素,并把第1组、第3组、第5组……进行反转,而把第2组、第4组、第6组……保持不变。而剩下的元素如果没有k
个元素,且处于奇数组中,将剩下的元素进行反转。看图示:
实现代码:
class Solution { public: string reverseStr(string s, int k) { if(s.size() <= k) { reverse(s.begin(), s.end()); return s; } int i = 1; while(k * i < s.size()) { reverse(s.begin() + k * (i - 1), s.begin() + k * i); i = i + 2; } reverse(s.begin() + k * (i - 1), s.end()); return s; } };
54. 替换数字(卡码网)
题目链接:https://kamacoder.com/problempage.php?pid=1064
文章讲解:https://programmercarl.com/kama54.替换数字.html
题目状态:过!!!
个人思路:
拿空间换时间,直接创建一个空字符串res
,判断输入的字符串元素是否为数字。若为数字,在res
后面接上一个number
,若不是数字,则在res
后面接入该元素。
代码实现:
#include <iostream> #include <string> using namespace std; using std::string; class Solution { public: string replaceNum(string s) { string res; for(auto &sCh : s) { if(!isdigit(sCh)) { res += sCh; } else { res += "number"; } } return res; } }; int main(void) { string s; cin >> s; Solution sol; cout << sol.replaceNum(s); }
第一次在卡码网上刷题,和力扣感觉不太一样。
合集:
「代码随想录算法训练营」
分类:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?