当前位置: 首页 > news >正文

(字符串 ) 剑指 Offer 58 - II. 左旋转字符串 ——【Leetcode每日一题】

❓剑指 Offer 58 - II. 左旋转字符串

难度:简单

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

示例 1:

输入: s = “abcdefg”, k = 2
输出: “cdefgab”

示例 2:

输入: s = “lrloseumgh”, k = 6
输出: “umghlrlose”

限制

  • 1 <= k < s.length <= 10000

💡思路:局部反转+整体反转

进阶: 不能申请额外空间,只能在本串上操作。

具体步骤为

  1. 反转区间为 前n 的子串
  2. 反转区间为n末尾的子串
  3. 反转 整个字符串

在这里插入图片描述

🍁代码:(Java、C++)

Java

class Solution {public String reverseLeftWords(String s, int n) {StringBuilder sb = new StringBuilder();sb.append(s.substring(n));sb.append(s.substring(0, n));return sb.toString();}
}

C++

class Solution {
public:string reverseLeftWords(string s, int n) {reverse(s.begin(), s.begin() + n);reverse(s.begin() + n, s.end());reverse(s.begin(), s.end());return s; }
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n ) O(n) O(n),其中 n 为字符串的长度。
  • 空间复杂度 O ( 1 ) O(1) O(1)

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!

http://www.lryc.cn/news/91581.html

相关文章:

  • EPICS编程
  • 17:00面试,还没10分钟就出来了,问的实在是太...
  • docker都有那些工具,及工具面试题
  • LAMP网站应用架构
  • C++虚函数virtual(动态多态)(纯虚函数)
  • 【Java 接口】接口(Interface)的定义,implements关键字,接口实现方法案例
  • 解决Vmware上的kali找不到virtualbox上的靶机的问题
  • 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在
  • 华为OD机试真题 Java 实现【表示数字】【牛客练习题】
  • 使用Python进行接口性能测试:从入门到高级
  • sed编辑器
  • 深入理解深度学习——正则化(Regularization):稀疏表示
  • 【Android】分别用JAVA和Kotlin实现横向扫描的动画效果
  • 长尾词挖掘,如何选择精准的长尾词优化?
  • Python相关环境变量配置和模拟手机app登录
  • c++ 11标准模板(STL) std::map(九)
  • 深入探索chatGPT插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder
  • 华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路
  • 第二章:MySQL环境搭建
  • 生产环境之负载均衡LVS+keepalived方案(2)_LVS介绍
  • 【parsel】------- PYTHON爬虫基础4
  • MySQL数据库从入门到精通学习第8天(表数据的查询)
  • 什么是IPAM?如何使用IPAM来管理IP地址和DHCP?
  • PCIE学习
  • 商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型
  • STM32HAL库RS485-ModBus协议控制伺服电机
  • 【医学图像】图像分割系列.3 (uncertainty)
  • Java有线程安全的set吗?
  • 《HelloGitHub》第 86 期
  • LDGRB-01 3BSE013177R1 将数字输入和继电器输出结合