题目链接

牛客网

题目描述

Input:
S="abcXYZdef"
K=3

Output:
"XYZdefabc"

解题思路

先将 “abc” 和 “XYZdef” 分别翻转,得到 “cbafedZYX”,然后再把整个字符串翻转得到 “XYZdefabc”。

public class Solution {
   
    public String LeftRotateString(String str,int n) {
   
        if (str==null || str.length()==0)return str;
        char[] cs = str.toCharArray();
        reverse(cs, 0, n-1);
        reverse(cs, n, cs.length-1);
        reverse(cs, 0, cs.length-1);
        return new String(cs);
    }
    private void reverse(char[] cs, int i, int j) {
   
        while (i<j) {
   
            char c = cs[i];
            cs[i] = cs[j];
            cs[j] = c;
            i++;j--;
        }
    }
}