首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >541. 反转字符串 II

541. 反转字符串 II

作者头像
编程张无忌
发布2021-06-01 21:39:29
发布2021-06-01 21:39:29
2970
举报
文章被收录于专栏:悟道悟道

给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例: 输入: s = "abcdefg", k = 2 输出: "bacdfeg"

用到的api

代码语言:javascript
复制
class Solution {
    public String reverseStr(String s, int k) {
        /**
        就找到开始和结束  双指针翻转机就行
         */
         char [] chars=s.toCharArray();

         for(int i=0;i<chars.length;i+=2*k){//起始下标以2倍增长  0   2k 4k 
         //起始 结束下标
            int left=i; int right=0;
            if(chars.length-left<k){
                //left到末尾的距离小于k 剩余的都翻转
                 right=chars.length-1;
            }
            else {
                //正常 翻转k个  从left->right
                 right=left+k-1;
            }
           
            
            //开始交换
            while(left<right){
                char temp=chars[left];
                chars[left]=chars[right];
                chars[right]=temp;
                left++;
                right--;
            }
          
         
    }
      return new String(chars);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档