题解 | #左旋转字符串#

左旋转字符串

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版)

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 17:30
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
06-02 15:53
阳光学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务