leetcode 557. Reverse Words in a String III 、151. Reverse Words in a String
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相关推荐
- C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...
- LeetCode 557 反转字符串中的单词 III
LeetCode 557.给定一个字符串,你需要颠倒一个句子中每个单词中的字符顺序,同时保留空格和初始单词顺序. class Solution {public String reverseWords( ...
- LeetCode 557. 反转字符串中的单词 III(栈)
文章目录 1. 题目信息 2. 解题 2.1 栈 2.2 STL reverse() 1. 题目信息 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: ...
- LeetCode 557. 反转字符串中的单词 III
文章目录 1. 题目描述 2. 解题思路 3. 代码实现 1. 题目描述 题目链接:557. 反转字符串中的单词 III 2. 解题思路 此题也可以直接在原字符串上进行操作,避免额外的空间开销. 当找 ...
- 内存分布malloc/calloc/realloc/free/new/delete、内存泄露、String模板、浅拷贝与深拷贝以及模拟string类的实现
内存分布 一.C语言中的动态内存管理方式:malloc/calloc/realloc和free 1.malloc: 从堆上获得指定字节的内存空间,函数声明:void *malloc (int n); ...
- leetcode 557. 反转字符串中的单词 III(Java版)
题目 https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/ 题解 class Solution {public String ...
- 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 ...
- LeetCode Reverse Words in a String III
原题链接在这里:https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description 题目: Given a string ...
- C#LeetCode刷题之#557-反转字符串中的单词 III(Reverse Words in a String III)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3955 访问. 给定一个字符串,你需要反转字符串中每个单词的字符顺 ...
最新文章
- python爬取哔哩哔哩视频_荐爬取哔哩哔哩中的cosplay小视频
- 马斯克受罚离任董事长,默多克之子或将成接替者!
- 如何查看哪些参数被新版本抛弃了?
- 一直在纠结怎样取出 combox 控件elect的文字
- java如何写安卓接口文档_android、java制作sdk以及自动生成文档
- SpringBoot——实现WebService接口服务端以及客户端开发
- QT:创建一个widget,包含源文件,头文件,以及ui文件
- Linux虚拟机添加新硬盘的全程图解
- 开源月刊(Open Source)
- 用户控件中得到CurrentUser
- 捷速编辑pdf文件插入图片的方法
- CSS文字的属性(总结)
- 前端如何使用mock模拟接口数据
- Java跨年祝福语代码_2018跨年夜精选祝福语贺词
- IDEA 前台静态文件发布不即时生效问题解决
- 泥瓦匠这几年 Java ...
- 佳能数码相机照片删除了怎么恢复,如何恢复还原佳能相机误删的照片
- 微信小程序Taro + React开发实践
- 在指定数据的前面加“0“
- 有各组方差怎么算组间平方和_#excel单因素方差分析#excel如何计算组间离差平方和...
热门文章
- USB接口芯片的选型参考(Z)
- mysql 'performance_schema'.'session_variables' 问题处理
- mac中安装activeMQ
- sam服务器是什么_使用SAM CLI将机器学习模型部署到无服务器后端
- 第四大运营商正式申请5G牌照,三大运营商如何应对?
- 突发!央行确认支付宝3种违法违规行为,处罚18万元!
- 数据库设计笔记——概述(一)
- java中类与类的关系_Java中类与类的关系
- python安装缺少api怎么办_请问缺少win32api模块该如何解决?
- sqlyong 删除数据能否撤回_数据结构知识点总结