您的位置:首页 > 编程语言 > Java开发

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

2015-06-02 20:04 375 查看
给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)

样例

给出字符串"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;
}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: