2反转字符

技术:整体反转+局部反转就可以实现

class Solution {
    public String reverseLeftWords(String s, int n) {
       int len = s.length();
       StringBuilder sb = new StringBuilder(s);
        reverseString(0,n-1,sb);
        reverseString(n,len-1,sb);
        
        return sb.reverse().toString();
    }
    //反转的方法
    public void reverseString(int start,int end,StringBuilder sb){
        while(start<end){
            //不用考虑奇偶个数
            //交换
            char temp = sb.charAt(start);
            sb.setCharAt(start,sb.charAt(end));
            sb.setCharAt(end,temp);
            start++;
            end--;
        }
    }
}

思路分析:

  1. 前部分反转
  2. 后部分反转
  3. 整体再反转

具体解决:java

  1. 使用一个StringBuilder缓存字符串s;
  2. 三次反转
  • 方法里:使用StringBuilder的方法setCharAt(index,ch),进行反转字符。
//源码
public void setCharAt(int index, char ch) {
    value[index] = ch;
}
posted @ 2023-06-12 21:09  郭培鑫同学  阅读(5)  评论(0编辑  收藏  举报