(字符串) 541. 反转字符串 II——【Leetcode每日一题】

news/2025/2/15 5:57:07/

❓541. 反转字符串 II

难度:简单

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

  • 如果剩余字符少于 k 个,则将剩余字符全部反转。
  • 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例 1:

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

示例 2:

输入:s = “abcd”, k = 2
输出:“bacd”

提示

  • 1 < = s . l e n g t h < = 1 0 4 1 <= s.length <= 10^4 1<=s.length<=104
  • s 仅由小写英文组成
  • 1 < = k < = 1 0 4 1 <= k <= 10^4 1<=k<=104

💡思路:模拟

我们直接按题意进行模拟:

  • 反转每个下标从 2k 的倍数开始的,长度为 k 的子串。
  • 若该子串长度不足 k,则反转整个子串。

🍁代码:(Java、C++)

Java

class Solution {public String reverseStr(String s, int k) {char[] ch = s.toCharArray();int n = s.length();for(int i = 0; i < n; i += 2 * k){int left = i;int right = Math.min(n - 1, i + k - 1);while(left < right){char temp = ch[left];ch[left++] = ch[right];ch[right--] = temp;}}return new String(ch);}
}

C++

class Solution {
public:string reverseStr(string s, int k) {for(int i = 0; i < s.size(); i += 2 * k){if(i + k - 1 < s.size()){reverse(s.begin() + i, s.begin() + i + k);}else{reverse(s.begin() + i, s.end());}}return s;}
};

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n ) O(n) O(n),其中 n 为字符串 s 的长度。
  • 空间复杂度 O ( 1 ) O(1) O(1) O ( n ) O(n) O(n),取决于使用的语言中字符串类型的性质。如果字符串是可修改的(C++),那么我们可以直接在原字符串上修改,空间复杂度为 O ( 1 ) O(1) O(1),(Java)否则需要使用 O ( n ) O(n) O(n) 的空间将字符串临时转换为可以修改的数据结构(例如数组),空间复杂度为 O ( n ) O(n) O(n)

题目来源:力扣。

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

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


http://www.ppmy.cn/news/142495.html

相关文章

现在润新加坡是个好主意吗?

作者 | 梁唐 出品 | 公众号&#xff1a;Coder梁&#xff08;ID&#xff1a;Coder_LT&#xff09; 大家好&#xff0c;我是梁唐。 上次写了一篇从新加坡回国的文章之后&#xff0c;引来的反响还不小。不少同学看了文章之后留言问我&#xff0c;怎样才能去新加坡工作&#xff0c;…

博弈论-第二章 基本假设

1.博弈基于人的理性 认知理性&#xff1a;自我利益的判断者 对偏好的认知 行为理性&#xff1a;自我利益的追求者 利益最大化 2.不同的参照 不同的选择 人在做选择的时候总会比较&#xff0c;不同的参照会影响比较的结果&#xff0c;从而影响人的选择 当增加了一个印刷版的…

计算机在家电中的用途,计算机技术在信家电中的运用11.doc

计算机技术在信家电中的运用11 关于“计算机技术在信息家电中的运用”的检索报告 信管091、赵月萍、209090704 一、分析研究课题(黑体四号) ***************************************************(正文&#xff0c;宋体五号) 信息家电 (3C 或IA&#xff1a; HYPERLINK "/d…

经济基础知识(中级)【5】

1.关于公司的分立通知和公告&#xff0c;公司应当自作出分立决议之日起&#xff08;&#xff09;日内通知债权人。 A.30 B.10 C.15 D.7 2.公司出现一定情形时可以解散这些情形包括&#xff08;&#xff09;。 A.公司章程规定的营业期限届满 B.股东会决议解散 C.因公司台并需…

Java学习笔记1 概述

Java概述 Java历史 1991年&#xff0c;SUNMicroSystem公司的JameGosling、BillJoe等人为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件。Oak—>Java&#xff1a;互联网给Java带来新的生机1995年Sun向公众推出Java并引起业界的轰动2009年…

关于电商价格战的一点思考(艾瑞观察栏目发言稿)

这是艾瑞观察第05期准备的稿子&#xff0c;艾瑞张建国老师主持、童阳老师和我做嘉宾。童老师讲的有条理、有深度&#xff0c;我就相形见绌&#xff0c;口头表达真是弱爆了。 这期的主题是《电商十一集体“哑火” 酝酿新一轮价格战》。 原文如下&#xff1a; [b]十一促销回顾[/…

2021年西式面点师(高级)免费试题及西式面点师(高级)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通&#xff1a;西式面点师&#xff08;高级&#xff09;免费试题是安全生产模拟考试一点通生成的&#xff0c;西式面点师&#xff08;高级&#xff09;证模拟考试题库是根据西式面点师&#xff0…

天猫、抖音各大电商平台关键词调用、价格监控、竞价API

本帖只展示部分代码及接口 需了解更多或开发系统请移步注册测试: http://console.open.onebound.cn/console/?ilucy Result Object: { “items”: { “page”: “1”, “page_size”: 44, “real_total_results”: 3668052, “total_results”: 3668052, “pagecount”: 833…