双指针 Leetcode 151 反转字符串中的单词

news/2024/11/16 3:46:34/

双指针 Leetcode 151 反转字符串中的单词

Leetcode 151

学习记录自代码随想录

法一:利用额外空间

class Solution {
public:string reverseWords(string s) {istringstream iss(s);vector<string> words_string;string k;while(iss >> k){words_string.push_back(k);}string res;for(int i = words_string.size()-1; i >= 0; i--){res += words_string[i];if(i != 0) res += " ";}return res;}
};

法二:原地改变字符串,不利用额外空间

class Solution{
public:// 反转单词void reverse(string& s, int start, int end){for(int i = start, j = end; i < j; i++, j--){swap(s[i], s[j]);}}// 去除多余空格void removeadditionblack(string& s){int slow = 0, fast = 0;// 去除开头空格while(s.size() > 0 && fast < s.size() && s[fast] == ' '){fast++;}// 去除中间空格while(s.size() > 0 && fast < s.size()){if(fast > 1 && s[fast] == s[fast-1] && s[fast] == ' '){fast++;}else{s[slow++] = s[fast++];}}// 去除结尾空格if(slow > 1 && s[slow-1] == ' '){s.resize(slow-1);}else{s.resize(slow);}}string reverseWords(string s){// 三步:1.去除多余空格removeadditionblack(s);// 2.整个字符串反转reverse(s, 0, s.size()-1);// 3.单个单词反转int cnt = 0;// 注意有等于号for(int i = 0; i <= s.size(); i++){if(s[i] == ' ' || i == s.size()){reverse(s, i-cnt, i-1);cnt = 0;}else{cnt++;}}return s;}
};

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

相关文章

测试项目实战——安享理财1(测试用例)

说明&#xff1a; 1.访问地址&#xff1a; 本项目实战使用的是传智播客的安享理财项目&#xff08;找了半天这个项目能免费用且能够满足测试实战需求&#xff09; 前台&#xff1a;http://121.43.169.97:8081/ 后台&#xff1a;http://121.43.169.97:8082/ &#xff08;点赞收藏…

vue-根据不同的环境配置基地址

本地测试时会把process.env.NODE_ENV设置为development 打包上线时会把process.env.NODE_ENV设置为production vue2环境变量配置 变量命名以VUE_APP_xxx开头, 可以在所有的文件中去获取(建议用它) 1、在根目录创建.env.development文件&#xff08;开发环境&#xff09; E…

JavaSE——异常(2/2)-异常的处理(记录异常并提示 、尝试重新修复)

目录 记录异常并提示 案例演示 流程解析 写法优化 尝试重新修复 开发中对于异常的常见处理方式 一层一层往上抛出异常&#xff0c;并且在最上层捕获异常&#xff0c;分为两种不同的处理方式。 例如&#xff0c;B站网页报错就是采取的第一种方式&#xff1a; 记录异常并…

Python-VBA函数之旅-set函数

目录 一、set函数的常见应用场景&#xff1a; 二、set函数使用注意事项 三、如何用好set函数&#xff1f; 1、set函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://blog.csdn.net/ygb_1024?spm1…

OpenBayes 一周速览|Apple 开源大模型 OpenELM 上线;字节发布 COCONut 首个全景图像分割数据集,入选 CVPR2024

公共资源速递 This Weekly Snapshots &#xff01; 5 个数据集&#xff1a; * COCONut 大规模图像分割数据集 * THUCNews 新闻数据集 * DuConv 对话数据集 * 安徽电信知道问答数据集 * Sentiment Analysis 中文情感分析数据集 2 个模型&#xff1a; * OpenELM-3B-Inst…

5G Advanced and Release18简述

5G Advanced 5G-Advanced, formally defined in 3GPP Release 18, represents an upgrade to existing 5G networks. 先睹robot总结的5G Advanced的advancements: Enhanced Mobility and Reliability: 5G-Advanced will support advanced applications with improved mobility…

大数据技术概述_1.大数据的定义

1.维基百科的定义 大数据是指其大小或复杂性无法通过现有常用的软件工具&#xff0c;以合理的成本并在可接受的时限内对其进行捕获、管理和处理的数据集。这些困难包括数据的收入、存储、搜索、共享、分析和可视化。 2.Granter的定义 Granter公司关注大数据的三个量化指标&…

十二届蓝桥杯Python组3月中/高级试题 第四题

** 十二届蓝桥杯Python组3月中/高级试题 第四题 ** 第四题&#xff08;难度系数 4&#xff0c;30 个计分点&#xff09; 编程实现&#xff1a; 给定一组包含n个&#xff08;n>3) 正整数数据&#xff0c;和一个正整数M&#xff0c;从这n个正整数中任意拿出两个数相 加&…