先翻转部分,后翻转整体。

左旋转字符串

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

先翻转部分,后翻转整体。注意上下界限。n-1

翻转过程:双指针。

图示如下。来源:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/solution/yuan-di-ju-bu-fan-zhuan-zheng-ti-fan-zhuan-xiang-j/
图片说明

   /**
     * 对于一个给定的字符序列S,请你把其循环左移K位后的序列输出
     * @param str 字符序列S
     * @param n 循环左移n位
     * @return 移位后的结果
     */
    public String LeftRotateString(String str,int n) {
        if(str==null||str.length()==0){
            return "";
        }
        int length=str.length();
        char[] chars=str.toCharArray();
        n%=length;
        reverseString(chars,0,n-1);
        reverseString(chars,n,length-1);
        reverseString(chars,0,length-1);
        return new String(chars);

    }

    public void reverseString(char[] chars,int start,int end ){
        while (start<end){
            char ch=chars[start];
            chars[start]=chars[end];
            chars[end]=ch;
            start++;
            end--;
        }
    }

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-09 16:39
已编辑
英俊的靓仔offer...:我感觉吧第二个寻迹小车的项目有点配不上你的学历了,写上去扣分了都可能对你来说,好歹是211硕士嘛,写在我这种二本混子的简历上还说得过去,个人观点哦,能再有个好点的项目应该会好很多,或者干脆不写第二个换个啥实习经历?
点赞 评论 收藏
分享
只因飞飞:今日首绷
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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