自学内容网 自学内容网

【力扣】541.反转字符串2

问题描述

思路解析

  • 每当字符达到2*k的时候,判断,同时若剩余字符>k,只对前k个进行判断(这是重点)
  • 因为字符串是不可变变量,所以将其转化为字符串数组,最后才将结果重新转变为字符串
    • 字符串->字符数组        s.toCharArray()
    • 字符数组->字符串        new String(arr)
  • 将反转的函数单独写出来,便于观察理解

代码

class Solution {
    public String reverseStr(String s, int k) {
        int n=s.length();
        char[] arr= s.toCharArray();

        for(int i=0;i<n;i+=2*k){
            reverse(arr,i,Math.min(i+k,n)-1);
        }

        return new String(arr);
    }

    public void reverse(char[] arr,int left,int right){
        while(left<right){
            char temp=arr[left];
            arr[left]=arr[right];
            arr[right]=temp;
            left++;
            right--;
        }
    }
}


原文地址:https://blog.csdn.net/yun_shui_/article/details/144116176

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!