算法学习(java实现之字符串)·····旋转字符串

来源:互联网 发布:淘宝网怎么抢红包 编辑:程序博客网 时间:2024/06/03 19:01

给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)

样例

给出字符串"abcdefg"

如果偏移量offset=0,返回"abcdefg"

如果偏移量offset=1,返回"gabcdef"

如果偏移量offset=2,返回"fgabcde"

如果偏移量offset=3,返回"efgabcd"

public class Solution {    /*     * param A: A string     * param offset: Rotate string with offset.     * return: Rotated string.     */    public char[] rotateString(char[] A, int offset) {        // wirte your code here        //当偏移量为0或者字符数组为空时直接返回原字符数组        if(offset==0||A.length==0){            return A;        }        //当字符数组的长度小于偏移量时,先对其取余        if(offset>A.length){            offset =offset%A.length;        }        //将字符串分为两部分,将第一部分翻转        for(int i = 0,j=A.length-1-offset;i<j;i++,j--){            char temp = A[i];            A[i] = A[j];            A[j] = temp;        }        //将第二部分翻转        for(int i= A.length-offset,j=A.length-1;i<j;i++,j--){             char temp = A[i];            A[i] = A[j];            A[j] = temp;        }        //再将整个字符串翻转        for(int i =0,j=A.length-1;i<j;i++,j--){            char temp = A[i];            A[i] = A[j];            A[j] = temp;        }        return A;    }    };


0 0
原创粉丝点击