随笔-左旋字符串

版权声明:中华人民共和国持有版权 https://blog.csdn.net/Fly_Fly_Zhang/article/details/85063049

题目:左旋字符串

思路:利用substring方法;两个str相加,从n位置开始,从n+len结束; 常规解法是,将字符串反转,然后0-n反转一次,n-len 反转一次

substring

public class Solution {
    public String LeftRotateString(String str,int n) {
        if(str.length()==0||str==null){
            return "";
        }
        int  len=str.length();
        n=n%len;
        str+=str;
        return str.substring(n,len+n);
    }
}

反转解法

public class Solution {
    public String reverse (String str,int start,int end){
        char [] ch=str.toCharArray();
        while(start<end){
            char tmp=ch[start];
            ch[start]=ch[end];
            ch[end]=tmp;
            start++;
            end--;
        }
        return new String(ch);
    }
    public String LeftRotateString(String str,int n) {
        if(str.length()==0||str==null){
            return "";
        }
        int  len=str.length();
        n=n%len;
        str=reverse(str,0,n-1);
        str=reverse(str,n,len-1);
        str=reverse(str,0,len-1);
        return str;
    }
}

猜你喜欢

转载自blog.csdn.net/Fly_Fly_Zhang/article/details/85063049
今日推荐