剑指Offer 58 - II. 左旋转字符串
双指针
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder str = new StringBuilder(s);
/**
* 分别反转前n个字符和剩余字符,然后反转全部字符
*/
reverse(str, 0, n - 1);
reverse(str, n, str.length());
reverse(str, 0, str.length());
return str.toString();
}
/**
* 定义反转字符串方法
*/
public void reverse(StringBuilder str, int left, int right){
while (left < right){
char temp;
temp = str.charAt(left);
/**
* setCharAt()方法修改StringBuilder对象值
*/
str.setCharAt(left, str.charAt(right));
str.setCharAt(right, temp);
left++;
right--;
}
}
}
/**
* 时间复杂度 O(n)
* 空间复杂度 O(n)
*/
库函数
class Solution {
public String reverseLeftWords(String s, int n) {
return s.substring(n) + s.substring(0, n);
}
}
https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!