算法日志5:字符串也是数组

news/2025/3/29 18:58:13/文章来源:https://www.cnblogs.com/duiwoeryan/p/18792670

前言

字符串相关题目记录


反转字符串1

class Solution {
public:void reverseString(vector<char>& s) {int l,r;l = 0;r = s.size()-1;while(r>l){s[l] ^= s[r];s[r]^=s[l];s[l]^=s[r];l++;r--;}}
};

反转字符串2

class Solution {
public:void myreverse(string&s, int l, int r){while(r>l){swap(s[l], s[r]);r--;l++;}}string reverseStr(string s, int k) {int l,r;int len = s.size();for(int i =0 ;i<len;i+=2*k){if(i+k-1<len){l = i;r = i+k-1;myreverse(s,l, r);}else{l = i;r = len-1;myreverse(s,l,r);}}return s;}
};

替换数字

#include<iostream>
#include<string>
using namespace std;
int main(){string s = "";cin>> s;int cnt = 0;int l = s.size() - 1;for(int i = 0; i<s.size();i++){if(s[i]-'0'>=0 &&s[i]-'0'<=9){cnt++;}}for(int i =0; i<cnt;i++){s+="     ";}int r = s.size() - 1;while(l>=0){if(s[l]>='a' && s[r]<='z'){s[r--] = s[l];l--;}else{s[r--] = 'r';s[r--] = 'e';s[r--] = 'b';s[r--] = 'm';s[r--] = 'u';s[r--] = 'n';l--;}}cout<<s;}

翻转字符串里的单词

class Solution {
public:void myreverse(string&s, int l, int r){while(r>l){swap(s[l], s[r]);l++;r--;}}string reverseWords(string s) {// 去除多余空格int fast = 0,slow = 0;while(s[fast]==' '){fast++;}while(fast<s.size()){if(s[fast]!=' '){s[slow] = s[fast];slow++;fast++;}else if(fast>0 && fast<s.size() -1&& s[fast] == ' '&& s[fast+1]!=' '){s[slow] = s[fast];slow++;fast++;}else{fast++;}}s.resize(slow);// cout<<s;//提取完毕myreverse(s, 0, s.size()-1);int l = 0,r = 0;while(r<s.size()){if(r == s.size()-1) myreverse(s,l,r);if(s[r]!=' ') r++;else{myreverse(s,l,r-1);l = r+1;r = r+1;}}return s;}
};

右旋字符串

#include<iostream>
#include<string>
using namespace std;
void myreverse(string &s, int l, int r){while(r>l){swap(s[l], s[r]);l++;r--;}
}
int main(){int k;cin>>k;string s;cin>>s;myreverse(s,0,s.size()-1);int l =0, r = k-1;myreverse(s, l, r);myreverse(s, r+1, s.size() - 1);cout<<s;
}

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

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

相关文章

win10下实现Cl__sh小猫控制WSL网络

情况说明: win10+WSL ,实现在win10下配置小猫咪 for Windows,从而让WSL内也能google上网。 一切都在win10下进行配置在win10-内下载最新的小猫咪 关闭win10下的防火墙(所有的) 按照步骤依次打开,其中图中第二步是安装一个模块,应用会重启。

星源物联插入SQL数据设置

1、第一步先设置好本机的IP地址 2、第二步在配置SQL权限,把本机IP配置管理权限 3、设置物联网配置

一文搞懂Java的SPI机制

1 简介 SPI,Service Provider Interface,一种服务发现机制。有了SPI,即可实现服务接口与服务实现的解耦:服务提供者(如 springboot starter)提供出 SPI 接口。身为服务提供者,在你无法形成绝对规范强制时,适度"放权" 比较明智,适当让客户端去自定义实现 客户…

EDA 学习笔记之 def 文档笔记1:基础介绍

介绍 def 文件的一些基本内容@目录def 文件介绍基本定义VIAS 定义NDR 定义COMPONENTPINSBLOCKAGESSPECIAL NETSNETSFILLS def 文件介绍 DEF: Design Exchange Format , 描述了数字电路在布局布线后的连接关系和位置关系,是将数字实现前后端连接起来的桥梁。 目前常用的 def ve…

day01计算机基础

计算机三层结构软件开发流程运维职责 1.软件724365运行 ==>监控 2.数据备份 3.优化 计算机组成 控制器 运算器 存储器 输入输出设备cpu 控制和运算 存储器 存储器之内存 1.内存条相当于人脑的记忆功能,只能临时存放数据 2.内存里存放的都是电信号,断电数据则丢失,相当于人…

甘特图项目进度管理必备:里程碑功能设置与透明化实践

你是否因为项目无法常常密切关注每个任务细节且耗时耗力?日事清里程碑让你轻松又高效!你听过山田本一这个名字吗? 他是日本的马拉松选手,曾在国际马拉松比赛中获得冠军。 他每次比赛前,都要仔细研究赛道,记下每个阶段的标志物,甚至把40多公里的赛程分解成几个小目标。 你…

绩效考核如何从形式化任务升级为公司战略工具?

竟然还有很多人误以为绩效管理只是用来“压榨”员工的???年底了,又到了各家公司对员工做年终绩效考评的时候。 很多人误以为绩效管理只是用来“压榨”员工的, 也有不少人觉得,绩效管理就是“一个成绩单”,搞得好像只为了那一两千块钱绩效工资才做的。 就连一些企业高层,…

OKR如何破解企业四大割裂难题:战略落地与组织协同的实战指南

企业常见战略传递失真、部门协作不畅、执行脱节及市场响应滞后四大管理痛点。日事清以OKR对齐目标、看板协同资源、PDCA闭环管控和敏捷复盘机制,系统化贯通战略到执行的完整链路,实现内外高效协同。在走访企业的过程中,我们发现很多企业在市场竞争非常激烈的情况下,维持业务…

微信公众号---API接口发布文章

最近在做一个项目,需要用到通过API接口发布推文。 基本流程: 1、注册微信公众号(订阅号和服务号都可以) 2、开发配置获取 appid 以及 appsecret,以及配置服务器IP白名单。 3、开发流程:接口需要 access_token 第一步:上传推文的素材,主要是推文的封面以及文章所需要的图…

航航(和一些人讲的题目)

这里标题是 hangjsmh 要求的题解写的非常简略,甚至一道题细节都没有清楚。 AGC067D 首先设排列为 \(1\sim n\) 是可行的。 第一感觉是相邻不可交换,即如果 \(l_i<i\),则 \(r_{i-1}=i-1\)。进一步地,\(r_{l_i\sim i}<i\),如果满足这个条件也易见其唯一性。 画在二维平…