Open songyy5517 opened 1 year ago
思路1:字符串切片
复杂度分析
思路2:字符串遍历拷贝,取余实现左旋转
复杂度分析
class Solution {
public String reverseLeftWords(String s, int n) {
// 思路1:字符串切片
// 1. 异常处理
if (s == null || s.length() == 0 || n <= 0 || n > s.length())
return s;
return s.substring(n, s.length()) + s.substring(0, n);
}
}
class Solution {
public String reverseLeftWords(String s, int n) {
// 思路2:遍历拼接
// 1. 异常处理
if (s == null || s.length() == 0 || n <= 0 || n > s.length())
return s;
// 2. 定义
StringBuilder res = new StringBuilder();
for (int i = n; i < n + s.length(); i++){
res.append(s.charAt(i % s.length()));
}
return res.toString();
}
}
2023/12/2 2024/3/15
2024/3/25
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例 1:
示例 2:
分析 这道题考察的是字符串的遍历和拼接。这道题涉及到字符串的分割,我们可以通过取余操作实现字符串的左旋转。