栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

左旋转字符串(简单难度)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

左旋转字符串(简单难度)

题目链接:

[点我进入leetcode](()

[](()思路与代码

====================================================================

[](()思路1(字符串切片)


应用字符串切片函数,可方便实现左旋转字符串。

获取字符串 s[n:]s[n:] 切片和 s[:n]s[:n] 切片,使用 “++” 运算符拼接并返回即可。

复杂度分析:

时间复杂度 O(N): 其中 N为字符串 s的长度,

空间复杂度 O(N): 两个字符串切片的总长度为 N 。

[](()代码示例1


class Solution {

public String reverseLeftWords(String s, int n) {

return s.substring(n, s.length()) + s.substring(0, n);

}

}

[](()思路2(列表遍历拼接)


若面试规定不允许使用 切片函数 ,则使用此方法。

算法流程:

新建一个 list(Python)、StringBuilder(Java) ,记为 res

先向 res 添加 “第 n + 1位至末位的字符” ;

再向 res添加 “首位至第 n位的字符” ;

将 res 转化为字符串并返回。

![在这里插入图片描述](https://img-blog.csdnimg.cn/7b8ba20f35434a86aa85156324b3ae09.png?x-os 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 s-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Yqq5Yqb5b2q,size_20,color_FFFFFF,t_70,g_se,x_16)

复杂度分析:

时间复杂度 O(N): 线性遍历 s并添加,使用线性时间;

空间复杂度 O(N) : 新建的辅助 res 使用 O(N)大小的额外空间。

[](()代码示例2


class Solution {

public String reverseLeftWords(String s, int n) {

StringBuilder res = new StringBuilder();

for(int i = n; i < s.length(); i++)

res.append(s.charAt(i));

for(int i = 0; i < n; i++)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号