左旋转字符串

Posted 氵冫丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了左旋转字符串相关的知识,希望对你有一定的参考价值。

题目

字符串左移k位后的结果

解题

旋转三次

public class Solution {
    public String LeftRotateString(String str,int n) {
        if(str == null || str.length() <=1)
            return str;
        int len= str.length();
        n = n%len;
        char[] A = str.toCharArray();
        reverse(A,0,len-1);
        reverse(A,0,len-n-1);
        reverse(A,len-n,len-1);
        return String.valueOf(A);
    }
    // 旋转
    public void reverse(char[] A,int left, int right){
        int i = left;
        int j = right;
        while(i<j){
            swap(A,i,j);
            i++;
            j--;
        }
    }
    // 交换
    public void swap(char[] A,int i,int j){
        char ch = A[i];
        A[i] = A[j];
        A[j] = ch;
    }
}

以上是关于左旋转字符串的主要内容,如果未能解决你的问题,请参考以下文章

最强解析面试题:左旋转字符串

最强解析面试题:左旋转字符串

LeetCode剑指 Offer 58 - II. 左旋转字符串(C++)

剑指offer左旋转字符串,C+实现

剑指offer四十三之左旋转字符串

剑指offer-左旋转字符串