557. Reverse Words in a String III

最简单的把空白之间的词反转

class Solution {
public:string reverseWords(string s) {vector<int> blank;for(int i = 0;i < s.size();i++){if(s[i] == ' ')blank.push_back(i);}int start = 0;int end;for(int i = 0;i < blank.size();i++){end = blank[i] - 1;reverse(s,start,end);start = end + 2;}reverse(s,start,s.size() - 1);return s;}void reverse(string& s,int start,int end){while(start < end){char tmp = s[end];s[end] = s[start];s[start] = tmp;start++;end--;}return;}
};

151. Reverse Words in a String

151题实际上比557题要难一些。难在,字符串中的空格不再仅仅在字符之间,在字符串的开头和结尾都可能有,并且空格的个数不再仅仅是1,而是有可能有许多。

输出的要求则是只能是字符+一个空格作为中间的间隔。

思路:先把整个字符串reverse,然后找每个子字符串第一个字符和最后一个,遇到空格都跳过,然后把这些子字符串reverse并+一个空格,最后一个处理的时候,我有点不知道怎么处理多出的末尾

的空格, 就用了一种暴力的方法

class Solution {
public:string reverseWords(string s) {if(s.empty())return "";string res = "";reverse(s,0,s.size() - 1);for(int i = 0;i < s.size();i++){if(s[i] != ' '){int j = i;while(s[j] != ' ' && j < s.size())j++;reverse(s,i,j-1);res += s.substr(i,j-i);res += " ";i = j;}}res = res.substr(0,res.size() - 1);return res;}void reverse(string& s,int start,int end){while(start < end){char tmp = s[end];s[end] = s[start];s[start] = tmp;end--;start++;}return;}
};

转载于:https://www.cnblogs.com/ymjyqsx/p/10732793.html

leetcode 557. Reverse Words in a String III 、151. Reverse Words in a String相关推荐

  1. C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

  2. LeetCode 557 反转字符串中的单词 III

    LeetCode 557.给定一个字符串,你需要颠倒一个句子中每个单词中的字符顺序,同时保留空格和初始单词顺序. class Solution {public String reverseWords( ...

  3. LeetCode 557. 反转字符串中的单词 III(栈)

    文章目录 1. 题目信息 2. 解题 2.1 栈 2.2 STL reverse() 1. 题目信息 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: ...

  4. LeetCode 557. 反转字符串中的单词 III

    文章目录 1. 题目描述 2. 解题思路 3. 代码实现 1. 题目描述 题目链接:557. 反转字符串中的单词 III 2. 解题思路 此题也可以直接在原字符串上进行操作,避免额外的空间开销. 当找 ...

  5. 内存分布malloc/calloc/realloc/free/new/delete、内存泄露、String模板、浅拷贝与深拷贝以及模拟string类的实现

    内存分布 一.C语言中的动态内存管理方式:malloc/calloc/realloc和free 1.malloc: 从堆上获得指定字节的内存空间,函数声明:void *malloc (int n); ...

  6. leetcode 557. 反转字符串中的单词 III(Java版)

    题目 https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题解 class Solution {public String ...

  7. LeetCode 557. Reverse Words in a String III

    题目 : Given a string, you need to reverse the order of characters in each word within a sentence whil ...

  8. LeetCode Reverse Words in a String III

    原题链接在这里:https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description 题目: Given a string ...

  9. C#LeetCode刷题之#557-反转字符串中的单词 III(Reverse Words in a String III)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3955 访问. 给定一个字符串,你需要反转字符串中每个单词的字符顺 ...

最新文章

  1. python爬取哔哩哔哩视频_荐爬取哔哩哔哩中的cosplay小视频
  2. 马斯克受罚离任董事长,默多克之子或将成接替者!
  3. 如何查看哪些参数被新版本抛弃了?
  4. 一直在纠结怎样取出 combox 控件elect的文字
  5. java如何写安卓接口文档_android、java制作sdk以及自动生成文档
  6. SpringBoot——实现WebService接口服务端以及客户端开发
  7. QT:创建一个widget,包含源文件,头文件,以及ui文件
  8. Linux虚拟机添加新硬盘的全程图解
  9. 开源月刊(Open Source)
  10. 用户控件中得到CurrentUser
  11. 捷速编辑pdf文件插入图片的方法
  12. CSS文字的属性(总结)
  13. 前端如何使用mock模拟接口数据
  14. Java跨年祝福语代码_2018跨年夜精选祝福语贺词
  15. IDEA 前台静态文件发布不即时生效问题解决
  16. 泥瓦匠这几年 Java ...
  17. 佳能数码相机照片删除了怎么恢复,如何恢复还原佳能相机误删的照片
  18. 微信小程序Taro + React开发实践
  19. 在指定数据的前面加“0“
  20. 有各组方差怎么算组间平方和_#excel单因素方差分析#excel如何计算组间离差平方和...

热门文章

  1. USB接口芯片的选型参考(Z)
  2. mysql 'performance_schema'.'session_variables' 问题处理
  3. mac中安装activeMQ
  4. sam服务器是什么_使用SAM CLI将机器学习模型部署到无服务器后端
  5. 第四大运营商正式申请5G牌照,三大运营商如何应对?
  6. 突发!央行确认支付宝3种违法违规行为,处罚18万元!
  7. 数据库设计笔记——概述(一)
  8. java中类与类的关系_Java中类与类的关系
  9. python安装缺少api怎么办_请问缺少win32api模块该如何解决?
  10. sqlyong 删除数据能否撤回_数据结构知识点总结