题解 | #左旋转字符串#

左旋转字符串

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @param n int整型 
     * @return string字符串
     */
    public String LeftRotateString (String str, int k) {
        if("".equals(str)) return "";
        // write code here
        int n = str.length();
        //k可能大于n的长度,注意取模
        k %= n;

        char[] chars = str.toCharArray();
        reverse(chars, 0, n - 1);
        reverse(chars, 0, n - k - 1);
        reverse(chars, n - k, n - 1);

        return String.valueOf(chars);
    }

    public void reverse(char[] chars, int l, int r){
        if(l >= r) return;
        while(l < r){
            char tmp = chars[l];
            chars[l] = chars[r];
            chars[r] = tmp;
            l ++;
            r --;
        }
    } 
}

#java##剑指offer##算法笔试#
剑指Offer2-Java题解 文章被收录于专栏

剑指offer题解(java版)

全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务