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

这篇具有很好参考价值的文章主要介绍了LeetCode:剑指 Offer 58 - II. 左旋转字符串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🍎道阻且长,行则将至。🍓

🌻算法,不如说它是一种思考方式🍀


算法专栏: 👉🏻123


一、🌱剑指 Offer 58 - II. 左旋转字符串

  • 题目描述:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
  • 来源:力扣(LeetCode)
  • 难度:简单
  • 提示:
    1 <= k < s.length <= 10000
  • 示例 1:
    输入: s = “abcdefg”, k = 2
    输出: “cdefgab”

🌴解题

1.直接使用字符串的substring

就是直接截取前后子字符串拼接即可:

class Solution {
    public String reverseLeftWords(String s, int n) {
        return s.substring(n,s.length())+s.substring(0,n);
    }
}

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

2.通过StringBuilder

使用可变字符串来编辑,先把整个字符串反转,再把两段分别反转就是答案了:

class Solution {
        public String reverseLeftWords(String s, int n) {
        StringBuilder ns=new StringBuilder(s);
        reverseString(ns,0,s.length()-1);

        reverseString(ns,0,s.length()-n-1);
        reverseString(ns,s.length()-n,s.length()-1);
        return ns.toString();
    }

    private static void reverseString(StringBuilder ns, int i, int length) {
        while (i<length){
            char tem= ns.charAt(i);
            ns.setCharAt(i,ns.charAt(length));
            ns.setCharAt(length,tem);
            i++;length--;
        }
    }
}

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

3.使用字符数组

创建等长的字符串数组,从旋转的点开始向后填进数组,到最后的位置返回到字符串第一个(取余吧),直到n个字符结束。

class Solution {
    public String reverseLeftWords(String s, int n) {
        char[]ns=new char[s.length()];
        for (int i = 0; i < s.length(); i++) {
            ns[i]=s.charAt((i+n)%s.length());
        }
        return new String(ns);
    }
}

知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。
物有本末,事有终始。知所先后,则近道矣。——《大学》

返回第一页。☝


☕物有本末,事有终始,知所先后。🍭

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

🍎☝☝☝☝☝我的CSDN☝☝☝☝☝☝🍓 文章来源地址https://www.toymoban.com/news/detail-430584.html

到了这里,关于LeetCode:剑指 Offer 58 - II. 左旋转字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【代码随想录 | Leetcode | 第十一天】字符串 | 反转字符串 | 反转字符串 II | 替换空格 | 反转字符串中的单词 | 左旋转字符串

    欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来字符串~反转字符串 | 反转字符串 II | 替换空格 | 反转字符串中的单词 | 左旋转字符串的分享 ✨ ✨题目链接点这里 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要

    2024年02月15日
    浏览(52)
  • LeetCode:剑指Offer 05. 替换空格 (字符串)

    🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 上一题:344. 反转字符串 本文速览: 🌻剑指 Offer 05 . 替换空格 - 简单 🌼151. 反转字符串中的单词-中等 题目描述 :请实现一个函数,把字符串 s 中的每个空格替换成\\\"%20\\\"。 来源:力扣(

    2023年04月11日
    浏览(90)
  • (字符串 ) 剑指 Offer 05. 替换空格 ——【Leetcode每日一题】

    难度:简单 请实现一个函数,把字符串 s 中的每个 空格 替换成 “ %20 ”。 示例 1: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 限制 : 0 = s 的长度 = 10000 💡思路:双指针法 如果想把这道题目做到 极致 ,就不要只用额外的辅助空间了! 首先扩充数组到每个空格替换

    2024年02月08日
    浏览(72)
  • (搜索) 剑指 Offer 38. 字符串的排列 ——【Leetcode每日一题】

    难度:中等 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面 不能有重复元素 。 示例: 输入:s = “abc” 输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] 限制 : 1 = s 的长度 = 8 💡思路:回溯 可以直接 暴力穷举 ,但

    2024年02月12日
    浏览(50)
  • Leetcode-每日一题【剑指 Offer 20. 表示数值的字符串】

      请实现一个函数用来判断字符串是否表示 数值 (包括整数和小数)。 数值 (按顺序)可以分成以下几个部分: 若干空格 一个  小数  或者  整数 (可选)一个  \\\'e\\\'  或  \\\'E\\\'  ,后面跟着一个  整数 若干空格 小数 (按顺序)可以分成以下几个部分: (可选)一个符号

    2024年02月13日
    浏览(45)
  • 【LeetCode-中等】剑指 Offer 67. 把字符串转换成整数(详解)

    写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续

    2024年02月15日
    浏览(52)
  • 替换空格&&反转字符串中的单词(LeetCode 剑指offer05 && 151)

    题目 剑指 Offer 05. 替换空格  思路 遍历,使用新的字符串来接原字符串,如为空格,则加入%20,否则加入原字符串。  不过看了题解有另一种解法,由于空格转化为%20,设计到原字符存储空间的增加,因此先计算出需要增加的空间后。再使用双指针,从后往前遍历,这里画的

    2024年02月16日
    浏览(46)
  • (其他) 剑指 Offer 67. 把字符串转换成整数 ——【Leetcode每日一题】

    难度:中等 写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可

    2024年02月09日
    浏览(56)
  • (动态规划) 剑指 Offer 48. 最长不含重复字符的子字符串 ——【Leetcode每日一题】

    难度:中等 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所

    2024年02月11日
    浏览(60)
  • 剑指 Offer —— 数组和字符串

    在一个 n * m 的二维数组中: 每一行都按照从左到右 非递减 的顺序排序 每一列都按照从上到下 非递减 的顺序排序 请完成一个高效的函数,输入这样的一个 二维数组和一个整数 ,判断 数组中是否含有该整数 。 示例: 现有矩阵 matrix 如下: 给定 target = 5 ,返回 true 。 给定

    2023年04月24日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包