题目描述
78左旋转字符串
样例
abcdefg 2
cdefgab
算法1
(反转字符串法)
1234567 先反转 123 4567
3217654 全反转
4567123
时间复杂度 O(n)
Java 代码
class Solution {
public String leftRotateString(String str,int n) {
if(str==null||str.length()<=1){
return str;
}
char[] cs = str.toCharArray();
n = n%cs.length;
reverse(cs, 0, n - 1);
reverse(cs, n, str.length() - 1);
reverse(cs, 0, str.length() - 1);
return String.valueOf(cs);
}
private void reverse(char[] cs,int begin,int end){
while (begin<end){
char temp = cs[begin];
cs[begin] = cs[end];
cs[end] = temp;
begin++;
end--;
}
}
}