此博客链接:
反转字符串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); } }
示例代码成功通过。
但是有些情况没有考虑面前,如下面这种情况。