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

leetcode 541. 反转字符串 II 简单

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

  • 如果剩余字符少于 k 个,则将剩余字符全部反转。
  • 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例 1:

输入:s = "abcdefg", k = 2
输出:"bacdfeg"

示例 2:

输入:s = "abcd", k = 2
输出:"bacd"

提示:

  • 1 <= s.length <= 10^4
  • s 仅由小写英文组成
  • 1 <= k <= 10^4

分析:直接按题意进行模拟。反转每个下标从 2k 的倍数开始的,长度为 k 的子串。若该子串长度不足 k,则反转整个子串。

char* reverseStr(char* s, int k) {int len=strlen(s),f=1,index=0;char *ans=(char*)malloc(sizeof(char)*(len+1));ans[len]=0;for(int i=0;i<len;i=i+k*2){if(i+k>=len){for(int j=len-1;j>=i;--j)ans[index++]=s[j];}else if(i+2*k>=len){for(int j=i+k-1;j>=i;--j)ans[index++]=s[j];for(int j=i+k;j<len;++j)ans[index++]=s[j];}else{for(int j=i+k-1,t=0;t<k;--j,++t)ans[index++]=s[j];for(int j=i+k,t=0;t<k;++j,++t)ans[index++]=s[j];}}return ans;
}

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

相关文章:

  • org.springframework.boot不存在的其中一个解决办法
  • AI绘画软件Stable Diffusion详解教程(2):Windows系统本地化部署操作方法(专业版)
  • MySql数据库运维学习笔记
  • Linux中Shell运行原理和权限(下)(4)
  • LeetCode热题100- 字符串解码【JavaScript讲解】
  • 每日一题——LRU缓存机制的C语言实现详解
  • Leetcode3162:优质数对的总数 I
  • docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结
  • Apache SeaTunnel 构建实时数据同步管道(最新版)
  • 递归、搜索与回溯第二讲:二叉树中的深搜 穷举vs暴搜vs深搜vs回溯vs剪枝
  • Hbase分布式——储存机制
  • Word表格中如何只单独调整某一单元格宽度
  • Build错误:Cannot determine build data storage root for project 和 无法加载主类的解决办法的经验分享
  • 【Springboot知识】Logback从1.2.x升级到1.3.x需要注意哪些点?
  • 大语言加持的闭环端到端自动驾驶模型 学习笔记纯干货
  • 初阶数据结构(C语言实现)——2算法的时间复杂度和空间复杂度
  • MySQL知识
  • 【前端定位线上问题的多种方案(不依赖 Sentry)】
  • 怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。
  • muduo网络库2
  • 什么是DrawCall?DrawCall为什么会影响游戏运行效率?如何减少DrawCall?
  • LabVIEW电能质量分析软件
  • 【十二】Golang 映射
  • PHP商协会管理系统小程序源码
  • React进阶之React核心源码解析(三)
  • 【无标题】网络安全公钥密码体制
  • mysql中的计算日期函数 理解、用法
  • 从零开始用react + tailwindcs + express + mongodb实现一个聊天程序(一)
  • wifi5和wifi6,WiFi 2.4G、5G,五类网线和六类网线,4G和5G的区别
  • Docker基础-常见命令