public class Solution {
/**
* @param str: an array of char
* @param offset: an integer
* @return: nothing
*/
public void rotateString(char[] str, int offset) {
// write your code here
if (str == null || str.length == 0 || offset < 0) {
return;
}
offset = offset % str.length; //T_T!!!!!!!
reverse(str, 0, str.length - offset - 1);
reverse(str, str.length - offset, str.length - 1);
reverse(str, 0, str.length - 1);
}
private void reverse(char[] str, int start, int end) {
while (start < end) {
char tmp = str[start];
str[start] = str[end];
str[end] = tmp;
start++;
end--;
}
}
}
2016年7月12日星期二
[LintCode] #8 Rotate String
1) when offset > str.length!!!!!
订阅:
博文评论 (Atom)
没有评论:
发表评论