题解 | #左旋转字符串#

左旋转字符串

http://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec

public class Solution {
    public String LeftRotateString(String s,int n) {
        if(s == null || s.length() < 2) {
            return s;
        }
        n %= s.length();
        char[] arr = s.toCharArray();
        reverse(arr, 0, s.length() - 1);
        reverse(arr, s.length() - n, s.length() - 1);
        reverse(arr, 0, s.length() - 1 - n);
        return new String(arr);
    }
    public void reverse(char[] arr, int i, int j) {
        while(i < j) {
            swap(arr, i, j);
            i++;
            j--;
        }
    }
    public void swap(char[] arr, int i, int j) {
        char tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
02-05 08:49
已编辑
武汉大学 Java
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务