反转字符串2

此博客链接:

反转字符串2

题目链接:https://leetcode-cn.com/problems/reverse-string-ii/

给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。

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

示例:

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

题解:

        思路:此题是给了一个数k,按照给的数k的2倍把字符串分割成几段,对每段中的前k个数进行反转。

                  1.先把字符串按照2*k个长度分割成几部分,然后再把每个分割的字符串中的前k个进行反转

代码:

class Solution {
    public String reverseStr(String s, int k) {
   
        
        char[] result=s.toCharArray();
        int len=result.length;
        for(int i=0;i<len;i=i+2*k)
        {
            for(int j=0;j<k/2;j++)
           {
               if(len-i-j-2==0)
                  break;
                char temp;
                temp=result[i+j];
                result[i]=result[i+k-j-1];
                result[i+k-j-1]=temp;
            }
        }
        // String str=result.toString();   
        return new String(result);
            
    }
}

示例代码成功通过。

但是有些情况没有考虑面前,如下面这种情况。

 

posted @ 2020-09-18 16:27  萍2樱释  阅读(156)  评论(3编辑  收藏  举报