当前位置: 首页 > news >正文

代码随想录训练营第七天 344反转字符串 541反转字符串II 替换数字

第一题:

原题链接:344. 反转字符串 - 力扣(LeetCode)

思路:

双指针,一根指向字符串的头部,一根指向字符串的尾部。两个指针向中间移动,交换两根指针指向的值。

代码如下:

class Solution {
public:void reverseString(vector<char>& s) {for(int i = 0, j = s.size() - 1; i < j; i++, j--){swap(s[i], s[j]);}return;}
};

第二题:

原题链接:541. 反转字符串 II - 力扣(LeetCode)

思路:

题目要求的是遍历到2k个字符然后反转2k字符的前k个字符。

于是我们遍历的时候直接i += 2 * k。这样我们就直接指向要反转的第一个元素。然后判断i + k是否超过了边界,如果没有超过直接反转前k个元素即可,若超过了就反转剩下的元素。

代码如下:

class Solution {
public:string reverseStr(string s, int k) {for(int i = 0; i < s.size(); i+=2 * k){if(i + k <= s.size()){for(int m = i, n = i + k - 1; m < n; m++, n--){swap(s[m], s[n]);}}else{for(int m = i, n = s.size() - 1; m < n; m++, n--){swap(s[m], s[n]);}}}return s;}
};

反转可以用reverse(s.begin() + i, s.begin() + i + k);

第三题:

原题链接54. 替换数字(第八期模拟笔试) (kamacoder.com)

思路:

先找出这个字符串中出现数字的个数,然后乘5,然后将字符串扩容。

然后从末尾遍历将字符填入对应的位置。

http://www.lryc.cn/news/371561.html

相关文章:

  • 【Python】数据处理:SQLite操作
  • NXP RT1060学习总结 - fsl_flexcan 基础CAN函数说明 -3
  • 2024年第三届数据统计与分析竞赛(B题)数学建模完整思路+完整代码全解全析
  • 高通Android 12 右边导航栏改成底部显示
  • 2.6数据报与虚电路
  • 小主机折腾记26
  • ArrayList浅析
  • Spring Boot整合hibernate-validator实现数据校验
  • Ubuntu系统中网易云音乐编译安装
  • MPLS标签号
  • OpenHarmony napi 编译 .so 并打包成 .har
  • python 循环导入(circular imports)解决方法
  • 01、Linux网络设置
  • ssm160基于Java技术的会员制度管理的商品营销系统的设计与实现+vue
  • 边缘计算网关在智慧厕所远程监测与管理的应用
  • 嵌入式linux中设备树使用of函数操作基本方法
  • 10.GLM
  • 【深度学习】Transformer分类器,CICIDS2017,入侵检测,随机森林、RFE、全连接神经网络
  • pdf压缩到指定大小的简单方法
  • 关于FPGA对 DDR4 (MT40A256M16)的读写控制 I
  • JavaWeb_SpringBootWeb案例
  • Linux中FTP安装
  • 【Spring EL<二>✈️✈️ 】SL 表达式结合 AOP 注解实现鉴权
  • 冯喜运:6.13美盘外汇黄金原油趋势分析及操作策略
  • Lecture2——最优化问题建模
  • unidbg讲解V1
  • 软设之敏捷方法
  • 【设计模式深度剖析】【7】【行为型】【观察者模式】
  • 列表的C++实
  • Chisel入门——在windows系统下部署Chisel环境并点亮FPGA小灯等实验