首页 > 其他分享 >代码随想录--字符串

代码随想录--字符串

时间:2023-12-18 20:57:39浏览次数:44  
标签:cn string -- 随想录 fast int 字符串 size

344. 反转字符串

https://leetcode.cn/problems/reverse-string/
image

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

541. 反转字符串Ⅱ

https://leetcode.cn/problems/reverse-string-ii/
image

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

151. 反转字符串中的单词

https://leetcode.cn/problems/reverse-words-in-a-string/submissions/489714833/
image

class Solution {
public:
    string reverseWords(string s) {
        int slow = 0;
        for(int fast = 0; fast < s.size(); fast++)
        {
            if(s[fast]!=' ')
            {
                if(slow!=0) s[slow++] = ' '; // 单词间加空格
                while(fast<s.size()&&s[fast]!=' ')
                    s[slow++] = s[fast++];
            }
        }
        s.resize(slow);
        //现在已经去掉多余空格了
        //先整体反转,再每个单词反转回来
        reverse(s.begin(),s.end());
        auto start = s.begin();
        for(int i = 0; i <= s.size(); i++)
        {
            if(i==s.size() || s[i] == ' ')
            {
                reverse(start, s.begin()+i);
                start = s.begin() + i + 1;
            }
        }
        return s;
    }
};

标签:cn,string,--,随想录,fast,int,字符串,size
From: https://www.cnblogs.com/xsl-blogs/p/17911739.html

相关文章

  • 高效利用资源,解密Line多开技巧
    高效利用资源,解密Line多开技巧在当今数字化时代,人们越来越依赖通讯工具来进行沟通和社交。而作为一款备受欢迎的即时通讯应用,Line在全球范围内拥有众多用户。然而,对于一些用户来说,他们可能需要同时登录多个Line账号来管理个人和工作之间的沟通,或者是为了与不同的社交圈子保持独立......
  • [Vue] vue学习笔记(11): 自定义事件 & 全局事件总线
    组件的自定义事件通过props可以将信息传递给子组件,那么当子组件需要向上传递信息的时候呢,除了使用props传递函数类的方法,我们还可以用自定义事件通过父组件给子组件绑定一个事件someEvent//App.vue<Student@someEvent='getStudentName'/>//methodsmethods:{ getStu......
  • 实验7 文件
    task41#include<stdio.h>2intmain()3{inti=0;charch;4FILE*fp;56fp=fopen("c:/aa/data4.txt","r");7if(fp==NULL){8printf("failtoopenfile\n");9return1;10}11while(1){12ch=fgetc(......
  • 2023重庆市第十一届大学生程序设计竞赛 游记
    Preface完全披萨!!!最战犯的一集,感觉直接把我扔了这场的结果都会更好虽然比赛结束后想了很多理由开脱狡辩,诸如一段时间不训练导致的手生+脑子生锈;比赛设备限制不能打印代码;天太冷了没有空调手冷抄错板子;如果是五个小时就可以和祁神把卡着的题都写了+再写个网络流了……但没办法,菜......
  • Excel-让你事半功倍的12个小技巧
    让你事半功倍的12个小技巧1.资料分列框选需要剖析的单元格——数据——分列——分隔符号——勾选分隔符号或分列——固定宽度——在数据预览处手动拖动分栏线。2.快速选取资料Ctrl+键盘方向键:选取框移动到表格的四个角落Ctrl+shift+键盘方向键:选取对应的范围标题列左上角:选取......
  • 10.31
    今天我们再来实现上述个人信息添加的前端代码。 1、add.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>添加个人信息</title><style>body{font-family:Arial,san......
  • Cesium开发遇到的问题解决
    问题1:后台缓存收回进程无法释放上下文[/BUSINESS的缓存的[10]%-请考虑增加缓存的最大大小。原因:出现该问题是Tomcat启动时,占用的缓存较大,Tomcat默认的缓存是10000KB.解决:需要调整Tomcat目录下\conf\context.xml文件中的缓存的最大值,需要添加在<Context></Context>标签内,添加项如......
  • 11.1
    今天实现了期中考试的代码。以下是本次期中考试的题目企业ERP生产计划管理系统(20分)1、项目需求:随着企业规模的不断扩大和市场竞争的日益激烈,生产计划管理成为了企业管理中不可或缺的一部分。生产计划管理子系统是企业管理信息系统中的一个重要组成部分,它主要负责生产计划的制定......
  • DataX配置文件生成脚本
    创建文件cd/opt/softwaremkdirgen_import_config.pyvimgen_import_config.pygen_import_config.py#coding=utf-8importjsonimportgetoptimportosimportsysimportMySQLdb#MySQL相关配置,需根据实际情况作出修改mysql_host="slave1"mysql_port="33......
  • apk防标记.防报毒处理深入分析;附工具
    背景Google审核日益严格,很多包都会因为各种原因被拒,推广线下包也就成了PlanB但在设备上直接安装apk,又会遇到另一个问题:报毒报毒后,推广成本大大增加,用户安装意愿大大降低.为什么一个apk会被标记成病毒呢.1.为什么apk被报毒就是你的apk里面包含病毒信息,或你的apk已经在......