代码随想录Day8


title: 代码随想录Day8
date: 2024-01-03 17:41:58

  • 代码随想录笔记
    categories:
  • 技术

代码随想录Day8|[344.]

翻转字符串|541 翻转字符串2|

思路

从前往后和从后往前两个指针不断运行交换即可

代码

class Solution {
public:void reverseString(vector<char>& s) {int n = s.size();for (int left = 0, right = n - 1; left < right; ++left, --right) {swap(s[left], s[right]);}}
};

翻转字符串2

思路

  1. 每隔 2k 个字符的前 k 个字符进行反转
  2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符
  3. 剩余字符少于 k 个,则将剩余字符全部反转。

代码实现

class Solution {
public:string reverseStr(string s, int k) {for (int i = 0; i < s.size(); i += 2 * k) {if (i + k <= s.size()) { // 满足有 k 个就翻转 k 个for (int j = 0; j < k / 2; j++) {swap(s[i + j], s[i + k - 1 - j]); // 修正反转逻辑}} else {// 反转剩余的所有字符for (int j = 0; j < (s.size() - i) / 2; j++) {swap(s[i + j], s[s.size() - 1 - j]); // 修正反转逻辑}}}return s;}
};

替换数字

思路

双指针法,发现后进行容量扩充

代码

#include<iostream>
using namespace std;
int main() {string s;while (cin >> s) {int count = 0; // 统计数字的个数int sOldSize = s.size();for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {count++;}}// 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小s.resize(s.size() + count * 5);int sNewSize = s.size();// 从后先前将空格替换为"number"for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) {if (s[j] > '9' || s[j] < '0') {s[i] = s[j];} else {s[i] = 'r';s[i - 1] = 'e';s[i - 2] = 'b';s[i - 3] = 'm';s[i - 4] = 'u';s[i - 5] = 'n';i -= 5;}}cout << s << endl;}

总结

字符串操作相对比较简单,自己能完整把代码搞定,思路也和书里相差不大,2H

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML中网页缩放配置mete-viewport

<meta name"viewport" content"widthdevice-width, intial-scale0, maximum-scale0, user-scalableyes, shrink-to-fitno" > 说明 这是一个用于设置网页视口&#xff08;viewport&#xff09;的HTML <meta> 标签。视口是用户在网页上看到的…

LeetCode刷题---旋转图像

解题思路&#xff1a; 首先对主对角线两边的元素进行交换 接着走一轮遍历&#xff0c;将第1列和第n列进行交换&#xff0c;第2列和第n-1列进行交换&#xff0c;直至得到最终的矩阵。 代码实现&#xff1a; public void rotate(int[][] matrix) {//首先对主对角线的元素进行交换…

对技术行业的深度思考

技术行业是当今世界最为热门和发展迅猛的领域之一。无论是互联网、人工智能还是区块链&#xff0c;技术的快速发展正在改变着我们的生活和社会。然而&#xff0c;我们是否真正思考过技术在我们生活中的影响和意义&#xff1f;本文将对技术行业展开深度思考&#xff0c;探讨其带…

【JVM面试题】Java中的静态方法为什么不能调用非静态方法

昨晚京东大佬勇哥在群里分享了一道他新创的JVM面试题&#xff0c;我听完后觉得还挺有意思的&#xff0c;分享给大家 小佬们先别急着看我的分析&#xff0c;先自己想想答案 你是不是想说 因为静态方法是属于类的&#xff0c;而非静态方法属于实例对象 哈&#xff0c;有人这样回答…

最优化理论期末复习笔记 Part 2

数学基础线性代数 从行的角度从列的角度行列式的几何解释向量范数和矩阵范数 向量范数矩阵范数的更强的性质的意义 几种向量范数诱导的矩阵范数 1 范数诱导的矩阵范数无穷范数诱导的矩阵范数2 范数诱导的矩阵范数 各种范数之间的等价性向量与矩阵序列的收敛性 函数的可微性与展…

【Delphi 基础知识 10】class operator重载运算符的使用

在Delphi中&#xff0c;class operator 是一种用于重载类运算符的语法。通过使用 class operator&#xff0c;你可以为你的Record记录类型中自定义运算符&#xff0c;使得Record能够像内置类型一样支持各种运算符操作。这使得你可以更灵活地定义类的行为&#xff0c;使其更符合…

mysql in 走不走索引

当只有一个值的时候&#xff0c;是ref当小范围的时候&#xff0c;是range当数据过多时&#xff0c;索引有可能失效&#xff08;数量是全表30%时&#xff09;

2_并发编程同步锁(synchronized)

并发编程带来的安全性同步锁(synchronized) 1.他的背景 当多个线程同时访问&#xff0c;公共共享资源的时候&#xff0c;这时候就会出现线程安全&#xff0c;代码如&#xff1a; public class AtomicDemo {int i0;//排他锁、互斥锁public void incr(){ //synchronizedi; …

pip install 安装模块包位置及设置Anaconda为默认版本python

01问题 pycharm运行代码找不到模块包pip install不知道安装到哪里了jupyter使用不同版本python 02产生原因 安装了多个版本pythonanaconda本身也带有python 03解决办法 (1)查看当前默认python版本 打开运行窗口Winr&#xff1b; 输入cmd回车&#xff1b; 输入python回车…

中小学班主任工作指南

作为中小学的班主任&#xff0c;我们的工作既繁重又重要。这份工作指南旨在为各位班主任提供一些实用的建议&#xff0c;帮助大家更好地完成教育教学任务&#xff0c;促进学生的全面发展。 一、了解学生是关键 首先&#xff0c;我们要深入了解每一个学生。了解他们的个性、兴趣…

Linux第2步_创建虚拟机

VMware软件安装好后&#xff0c;就可以创建虚拟机了。 一、虚拟机对CPU的要求较高 i7 处理器&#xff1a;CPU&#xff1a;Intel(R) Core(TM) i7-8700 CPU 3.20GHz 3.19 GHz 内核数&#xff1a;6 线程数&#xff1a; 12 最大睿频频率&#xff1a; 4.60 GHz 英特尔 睿…

vue3 vuedraggable draggable element must have an item slot

vue3vite 看官网使用这种<template #item“{ element }”> <draggablev-model"myArray"start"onStart"end"onEnd":sort"false"item-key"id"draggable".item"handle".mover" ><template…

LinkedIn 开源其开发人员工作效率与幸福感衡量框架

回望2023年&#xff0c;在整个开发生态系统中&#xff0c;推动新工具和新技术发展的主要因素有两个&#xff1a;一个是人工智能&#xff0c;包括使用和构建人工智能&#xff0c;另一个是提高开发人员的工作效率。 后者可能是最难量化和描述的。首先&#xff0c;开发人员的生产效…

游戏录屏软件哪个好用免费?我来告诉你!

在游戏玩家的世界里&#xff0c;录制并分享游戏精彩瞬间是一种常见的需求。选择一款好用且免费的游戏录屏软件对于实现这一目标至关重要。可是游戏录屏软件哪个好用免费呢&#xff1f;本文将介绍两款备受好评的免费游戏录屏软件。通过详细的步骤介绍&#xff0c;帮助你轻松记录…

深信服技术认证“SCCA-C”划重点:云计算关键技术

为帮助大家更加系统化地学习云计算知识&#xff0c;高效通过云计算工程师认证&#xff0c;深信服特推出“SCCA-C认证备考秘笈”&#xff0c;共十期内容。“考试重点”内容框架&#xff0c;帮助大家快速get重点知识。 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff08…

springboot使用@ConfigurationProperties自动绑定配置参数属性

ConfigurationProperties使用 ConfigurationProperties是 springboot提供用于将配置文件中的属性值映射到 Java bean对象上。通过使用该注解&#xff0c;我们可以方便地将属性文件中的值绑定到一个实例化的类对象上&#xff0c;从而方便地在应用程序中使用这些属性。 Configu…

无缝衔接,完美对接:探索系统对接的最佳实践

目录 1、前言 2、系统对接概述 2.1 什么是系统对接 2.2 系统对接的重要性 3、系统对接注意事项 4、系统对接的最佳实践 5、系统对接的风险和解决方案 5.1 数据安全风险 5.2 兼容性风险 5.3 故障和错误处理 6、结语 1、前言 随着科技的不断进步和应用场景的不断拓展…

Python 自学(四) 之元组字典与集合

目录 1. 列表&#xff0c;元组&#xff0c;字典与集合的区别 2. 元组的创建和删除 tuple() del P101 3. 单个元素的元组 P102 4. 元组元素的修改 P106 5. 元组的使用场景 6. 字典的创建和删除 dict() zip() : del clear() P1…

使用setcap修改Linux程序CAP能力值

Linux是一种安全操作系统&#xff0c;它给普通用户尽可能低的权限&#xff0c;而把全部的系统权限赋予一个单一的帐户--root。root帐户用来管理系统、安装软件、管理帐户、运行某些服务、安装/卸载文件系统、管理用户、安装软件等。另外&#xff0c;普通用户的很多操作也需要ro…

Transformer 架构解释

一、说明 变形金刚是机器学习的一个新发展&#xff0c;最近引起了很大的轰动。他们非常善于跟踪上下文&#xff0c;这就是为什么他们写的文本有意义。在本章中&#xff0c;我们将介绍它们的体系结构以及它们的工作原理。 amanatulla1606 Transformer 模型是机器学习中最令人兴奋…