给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。

示例:

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

要求:

  1. 该字符串只包含小写的英文字母。
  2. 给定字符串的长度和 k 在[1, 10000]范围内。
class Solution {public String reverseStr(String s, int k) {if (s == null || s.length() <= 1)return s;char[] chs = s.toCharArray();int i = 0;while (i < chs.length) {if (i +  k - 1 < chs.length) {reverseCharArray(chs, i, i + k - 1);} else {reverseCharArray(chs, i, chs.length - 1);}i += 2 * k;}return String.valueOf(chs);}private char[] reverseCharArray(char[] chs, int i, int j) {if (chs == null || i >= j)return chs;while (i < j) {chs[i] ^= chs[j];chs[j] ^= chs[i];chs[i++] ^= chs[j--];}return chs;}
}

转载于:https://www.cnblogs.com/WeichengDDD/p/10722172.html

Q541 反转字符串 II相关推荐

  1. leetcode 344. 反转字符串 541. 反转字符串 II 双指针解

    目录 leetcode 344.反转字符串 1.题目 2.思考 leetcode 541. 反转字符串 II 1.题目 2.思考 leetcode 344.反转字符串 1.题目 2.思考 典型的双指针 ...

  2. 字符串(一) | 剑指 Offer 58 - II. 左旋转字符串、541. 反转字符串 II、剑指 Offer 05. 替换空格、151. 反转字符串中的单词

    剑指 Offer 58 - II. 左旋转字符串 把前k个字符移动到结尾 翻转前k个字符,翻转剩余字符 翻转整个字符串 class Solution { public:void reverse(str ...

  3. Suzy找到实习了吗Day 8 | 字符串开始啦 344. 反转字符串,541. 反转字符串 II,剑指 Offer 05. 替换空格,151. 反转字符串中的单词,左旋转字符串

    这里是目录 344. 反转字符串 题目 Solution 541. 反转字符串 II 题目 Solution(v1) Solution(v2) 剑指 Offer 05. 替换空格 做题记录 151. ...

  4. 代码随想录算法训练营第八天|● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符

    一.344.反转字符串 力扣 思路:很简单的一个for循环双指针,left和right交换. class Solution {public void reverseString(char[] s) { ...

  5. 541. 反转字符串 II

    文章目录 1. 题目描述 2. 解题思路 3. 代码实现 1. 题目描述 题目链接:541. 反转字符串 II 2. 解题思路 这道题是 反转字符串 的进阶版,看题目可能有点难理解,其实很简单. 我们 ...

  6. 【必备算法】字符串(反转问题):LeetCode题 344. 反转字符串,541. 反转字符串 II,917. 仅仅反转字母

    写在前面,反转数组的思路很简单,就是借助双指针不断将首尾相应位置的字符交换.Java模板如下: public void reverseArray(char[] arr) {int i = 0, j = ...

  7. 代码随想录算法训练营第八天|344.反转字符串 541. 反转字符串II 剑指Offer 05.替换空格 151.翻转字符串里的单词 剑指Offer58-II.左旋转字符串

    一.344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的 ...

  8. 备战sp23春招 day8 | 344.反转字符串 541. 反转字符串II 剑指 05.替换空格 151.翻转字符串里的单词 剑指58-II.左旋转字符串

    344 反转字符串 class Solution {public:void reverseString(vector<char>& s) {int n = s.size();int ...

  9. LeetCode 541. 反转字符串 II

    1. 题目 给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转.如果剩余少于 k 个字符,则将剩余的所有全部反转.如果有小于 2k 但大于或等于 k 个字符 ...

最新文章

  1. NBUT 1457 Sona(莫队算法+离散化)
  2. placeholder在不同浏览器下的表现及兼容方法
  3. ARM平台硬件时钟中断周期HZ值计算
  4. websocket传输canvas图像数据给C++服务端opencv图像实现web在线实时图像处理
  5. Hyperledger Fabric Chaincode 开发
  6. 站立会议(11月19日)
  7. 单片机的Bootloader,可以实现用户轻松升级程序
  8. 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
  9. java表达式7|3,Chapter3 Java运算符
  10. cisco Router专线路由器配置
  11. 9)Thymeleaf ⼯具类对象表达式
  12. 古代小说鉴赏辞典 - 郭子仪
  13. mysql 执行存储过程
  14. “首月0保费”导流模式告终 知名互联网保险平台开始裁员
  15. Flutter高仿微信-第26篇-新的朋友
  16. 微信公众号编辑文章发布时,弹出,图文消息中含有敏感词
  17. DTI-ATS入门(1):DTI综述
  18. 信息收集之寻找真实ip
  19. 在eclipse上使用Maven创建动态web项目
  20. Dr.com 新版 Ver 5.2.0 本地 密码 读取 查看 破解

热门文章

  1. C++新特性探究(十):Lambda
  2. python中typeerror是什么意思_TypeError:在Python中
  3. html页面返回json数据为空,在Html页面中,展示出Json格式数据,且保持缩进格式...
  4. rfid 标签内存_RFID有源与无源的区别与联系
  5. python逗号表达式_python – 如何用位于括号外的逗号分割一个字符串?
  6. centos安装mysql8_Docker 快速安装 Mysql
  7. java标识语_Java 基本语法,标识符,修饰符,关键字
  8. sqlalchemy 增删改
  9. VSCode Python Tutorial
  10. 3.11 随机初始化