LeetCode OJ 之 Reverse Words in a String (翻转字符串的单词)
来源:互联网 发布:源码资本办公地址 编辑:程序博客网 时间:2024/06/05 16:33
题目:
Given an input string, reverse the string word by word.(给定一个输入字符串,按单词翻转这个字符串)
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
Clarification:
- What constitutes a word?
A sequence of non-space characters constitutes a word.(没有空格的连续字符组成了一个单词) - Could the input string contain leading or trailing spaces?(字符串的开头和结尾是否可以为空格)
Yes. However, your reversed string should not contain leading or trailing spaces.(可以,但是翻转后的字符串开头和结尾不能有空格) - How about multiple spaces between two words?(如果两个单词直接有多个空格怎么办)
Reduce them to a single space in the reversed string.(翻转后的字符串空格减少到只有一个)
把单词存入一个容器中,然后再reverse一下,然后按顺序赋给s即可。(注意当s为空或者s全是空格时,转换后的s为空)
代码:
class Solution {public: //要考虑到空字符串以及只有空格组成的字符串(注意空和空格字符的区别) void reverseWords(string &s) { vector<string> svec;//存储s的每个单词,不包含空格 //s为空直接返回 if(s.empty()) return; for(size_t i = 0 ; i < s.size() ; i++) { //如果当前字符为空格 if(s[i] == ' ') continue; string word;//临时保存当前的单词,在这里定义的好处是下次循环时word初始值又为空了 //开始写成了while(s[i] != ' ' && i < s.size()),一直出现访问越界问题 //因为当i == s.size()时,先访问了s[i]而不是先判断i<s.size(),导致访问越界,这种问题以前还没碰到过,还是写的代码太少了啊 while(i < s.size() && s[i] != ' ') { word += s[i]; i++; } svec.push_back(word);//把当前单词放入容器 } reverse(svec.begin(),svec.end());//把单词翻转一下,也可以不翻转,而是按逆序把单词放入s中 //如果svec为空,说明s全为空格,则直接令s为空即可 if(svec.empty()) s = ""; else { s.clear();//先清空s size_t i = 0; //因为题目要求最后一个字符不能是空格,因此先遍历到倒数第二个单词 for(i = 0 ; i < svec.size()-1 ; i++) { s += svec[i];//把当前单词加到s后面 s += ' ';//在s后面再补一个空格 } s += svec[i];//最后把最后一个单词补上,这样最后一个字符就不是空格了 } }};
0 0
- LeetCode OJ 之 Reverse Words in a String (翻转字符串的单词)
- Reverse Words in a String 翻转一个字符串里的单词顺序 @LeetCode
- LeetCode刷题:Reverse Words in a String(翻转字符串中的单词)
- 151. Reverse Words in a String 翻转字符串中的单词
- Reverse Words in a String 翻转句子的单词
- Reverse Words in a String III 翻转字符串中的单词之三
- leetcode 151. Reverse Words in a String 字符串 翻转
- leetcode151-Reverse Words in a String(翻转字符串单词的位置)
- leetcode系列(1)Reverse Words in a String 句中单词顺序翻转
- Reverse Words in a String 翻转字符串
- 字符串-Reverse Words in a String(翻转字符串)
- LeetCode OJ:Reverse Words in a String
- LeetCode OJ :Reverse Words in a String
- Reverse Words in a String -LeetCode OJ
- Leetcode OJ : Reverse Words in a String
- [LeetCode OJ] Reverse Words in a String
- LeetCode OJ:Reverse Words in a String
- LeetCode OJ : Reverse Words in a String
- 学习Unity3D第十八天之接口。
- oracle如何查看隐藏参数
- git常用基本命令
- 水题 删数问题
- S2SH项目登陆拦截
- LeetCode OJ 之 Reverse Words in a String (翻转字符串的单词)
- 正则表达式30分钟入门教程
- 使用.net完美解决服务器注销后go的web服务停止的问题
- zoj3541(区间dp)
- ANDROID SDK体系介绍
- C语言的值传递
- ︰相对全面的会计考试资料PDF需要你就动动手来拿!
- java类的加载初始化
- 算法竞赛入门经典 第三章 uVA1585 - Score