链接
牛客:左旋转字符串
LeetCode:剑指 Offer 58 - II. 左旋转字符串
思路
直接截取字符串拼接 不过这题测试用例好像不够完善,就是 n 可能大于字符串的长度,那样的话需要 n % str.length() 来获得需要的偏移位置。当然,这种方法虽然简单,但是需要申请三段新的空间,为了避免空间复杂度的浪费,我们有更好的方式:先旋转每个单词,再旋转整个字符串(反着来也可以)。
代码
牛客:
public class Solution {
public String LeftRotateString(String str, int n) {
int length = str.length();
if (length <= 0) {
return "";
}
String s = str.substring(0, n);
String s1 = str.substring(n, str.length());
return s1 + s;
}
}
LeetCode:
class Solution {
public String reverseLeftWords(String s, int n) {
int length = s.length();
if (length <= 0) {
return "";
}
String s1 = s.substring(0, n);
String s2 = s.substring(n, s.length());
return s2 + s1;
}
}