题目描述
示例1
示例2
做题思路
代码
class Solution {
public String reverseLeftWords(String s, int n) {
n=n%s.length();//考虑到n大于字符串长度的情况
int size=0;
char[] ss=new char[s.length()];
//将字符串转换为字符数组
for(int i=0;i<s.length();i++){
ss[size++]=s.charAt(i);
}
reverseWords(ss,0,n-1);//先反转区间为前n的子数组
reverseWords(ss,n,size-1);//再反转区间为n到末尾的子数组
reverseWords(ss,0,size-1);//最后反转整个数组
return new String(ss,0,size);//将字符数组ss转换为字符串返回
}
//反转指定区间的数组
public void reverseWords(char[] s,int head,int tail){
for(int i=head,j=tail;i<j;i++,j--){
char temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}