题目
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)
样例
对于字符串 “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++]);
}