
解法:
借用了上一道题中所写的根据索引反转字符串的方法。
经过分析想要达到题中所给出的效果,我们可以先反转前面几个数,再反转后面几个数,最后一起反转就实现了想要的结果。
换个思路分析:全部反转,所想要反转的就到后面了,再分别把前面的反转调正,把后面的反转调正。
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder sb=new StringBuilder();
sb.append(s);
reverseString(sb,0,n-1);
reverseString(sb,n,s.length()-1);
reverseString(sb,0,s.length()-1);
String result=sb.toString();
return result;
}
public void reverseString(StringBuilder sb, int start, int end) {
//反转字符串任意一部分
String s = sb.toString();
char[] chs = s.toCharArray();
while (start <= end) {
char temp = chs[start];
chs[start] = chs[end];
chs[end] = temp;
start++;
end--;
}
String result=new String(chs);
sb.replace(0,s.length(),result);
}
}
该文章介绍了如何使用Java编程语言,通过反转字符串的不同部分来实现特定的字符串操作。首先,整体反转字符串,然后分别反转首尾段,最后再对整个字符串进行一次反转,从而达到题目要求的效果。这种方法利用了StringBuilder类和字符数组进行翻转。

被折叠的 条评论
为什么被折叠?



