反转字符串 II--力扣541

news/2024/9/25 3:41:22/

反转字符串 II

  • 题目
  • 思路
  • 代码

题目

在这里插入图片描述

思路

本题的关键在于理解每隔 2k 个字符的前 k 个字符进行反转,剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符。并且剩余字符少于 k 个,则将剩余字符全部反转。

让i每次跳2k,成为每一次循环的起点,再进行判断,如果i + k <= s.size(),说明剩余字符小于 2k 但大于或等于 k 个,所以反转前 k 个字符。否则说明剩余字符少于 k 个,则将剩余字符全部反转。

代码

class Solution {
public:void reverse(string& s, int x, int y) {for (int i = x, j = y; i < j; i++, j--) {swap(s[i], s[j]);}}string reverseStr(string s, int k) {for (int i = 0; i < s.size(); i += (2 * k)) {//如果剩余字符串数<=2k且>=k,那么翻转前k个if (i + k <= s.size()) {reverse(s, i, i + k -1);continue;} else {//如果剩余字符串数<k,翻转剩余的全部字符reverse(s, i, s.size() - 1);}}return s;}
};

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

相关文章

Python编码系列—Python模板方法模式:定义算法骨架,让子类实现细节

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

什么是动态数据脱敏?

原文地址 https://www.bytebase.com/blog/what-is-dynamic-data-masking/ 动态数据脱敏&#xff08;DDM&#xff09;动态更改返回给应用程序或用户的数据库记录&#xff0c;以此来实时保护敏感数据&#xff0c;且不会更改静态数据。 DDM 与静态数据脱敏&#xff08;SDM&#x…

【云安全】云上攻击路径

一、2022年CSA发布的《云计算的11类顶级威胁》&#xff1a; 1&#xff09;身份、凭据、访问和管理密钥、特权账号管理的不足 2&#xff09;不安全的接口和API 3&#xff09;配置不当和变更控制的不足 4&#xff09;缺乏云安全架构和战略 5&#xff09;不安全的软件开发 6…

基于C++ 实现一个庆祝国庆节的小程序(含实现代码)

基于C 实现一个庆祝国庆节的小程序。以下是一些具体的扩展建议和实现示例&#xff1a; 完整示例免费下载链接 1. 增加更多的祝福样式 我们可以扩展祝福语&#xff0c;使其更加多样化。可以根据节日的不同方面&#xff08;如家庭、朋友、祖国等&#xff09;来分类。 std::ve…

20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32F103C8T6 采用DHT11读取温度、滑动变阻器模拟读取电流、电压。 通过OLED屏幕显示&#xff0c;设置电流阈值为80&#xff0c;电流小阈值为50&#xff0c;电压阈值为60&#xff0c;温度阈值…

【Linux】线程同步(第十七篇)

目录 线程同步&#xff1a; 1.概述 2.线程同步的方式 1.互斥锁&#xff1a; 2.读写锁&#xff1a; 3.进程互斥锁: 4.自旋锁&#xff1a; 5.信号量&#xff1a; 6.条件变量COND&#xff1a; 线程同步&#xff1a; 1.概述 多线程模型中&#xff0c;即当有一个线程在对内…

k8s自动清理pod脚本分享

检查会遇到集群节点内存消耗超过90%&#xff0c;我们可以筛选一些可以进行重启的pods&#xff0c;如脚本中涉及svc-开头的&#xff0c;进行触发即重启的shell编写。此项会涉及metrics组件需要安装。 #!/bin/bash# 设置内存使用率阈值为90% MEMORY_THRESHOLD90# 初始化一个数组…

【Linux】从内核认识信号

一、阻塞信号 1 .信号的一些其他相关概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作. 注…