1.字符串切片
由于本题的多解法涉及到了 字符串为不可变对象 的相关概念,导致效率区别较大。
新建两切片字符串,并将两切片拼接为结果字符串,无冗余操作,效率最高。
代码
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n, s.length()) + s.substring(0, n);
}
}
复杂度
均为O(N)
结果
2.我的解法
代码
class Solution {
public String reverseLeftWords(String s, int n) {
char[] a=s.toCharArray();
char[] b=new char[a.length];
int c=0;
for(int i=n;i<a.length;i++){
b[c++]=a[i];
}
for(int i=0;i<n;i++){
b[c++]=a[i];
}
return new String(b);
}
}
复杂度
均为O(N)