旋转字符串

来源:互联网 发布:南山空同 知乎 编辑:程序博客网 时间:2024/05/01 10:46

题目

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

样例
对于字符串 “abcdefg”.

offset=0 => “abcdefg”
offset=1 => “gabcdef”
offset=2 => “fgabcde”
offset=3 => “efgabcd”

解法

public static void f(char[] str , int offset)    {    //空指针检查        if(str == null)            return;    //空串检查          int length = str.length;            if(length == 0)            return;    //简化旋转一周的情况        offset = offset%length;        char[] result = new char[length];        int nstr = 0;        int nresult = offset;        for(int i = 0 ; i <  length-offset ; i++){            result[nresult++] = str[nstr++];        }        nresult = 0;        for(int i = 0 ; i < offset; i++){            result[nresult++] = str[nstr++];        }        for(int i = 0; i < length; str[i] = result[i++]);    }
0 0
原创粉丝点击