LeetCode:Reverse Words in a String

简介:

Given an input string, reverse the string word by word.

For example,
Given s = "the sky is blue",
return "blue is sky the".


复制代码
 1 class Solution {
 2 public:
 3     void reverseWords(string &s) 
 4     {
 5         //从前往后扫描 
 6         string res, word;
 7         for(int i = s.size()-1; i >= 0;)
 8         {
 9             while(i >= 0 && s[i] == ' ')--i;//去掉空格
10             if(i < 0)break;
11             if(res.size() != 0)res.push_back(' ');
12             word.clear();
13             while(i >= 0 && s[i] != ' ')word.push_back(s[i--]);//word为找到的一个单词
14             for(int j = word.size()-1; j >= 0; --j)
15                 res.push_back(word[j]);
16         }
17         s = res;
18     }
19 };
复制代码





本文转自tenos博客园博客,原文链接:http://www.cnblogs.com/TenosDoIt/p/3986615.html,如需转载请自行联系原作者

目录
相关文章
|
11月前
|
算法 C++
【LeetCode】【C++】string OJ必刷题
【LeetCode】【C++】string OJ必刷题
63 0
CF1553B Reverse String(数学思维)
CF1553B Reverse String(数学思维)
40 0
|
6月前
|
机器学习/深度学习 canal NoSQL
从C语言到C++_12(string相关OJ题)(leetcode力扣)
从C语言到C++_12(string相关OJ题)(leetcode力扣)
51 0
|
6月前
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
6月前
|
Go 机器学习/深度学习 Rust
Golang每日一练(leetDay0119) 反转字符串I\II Reverse String
Golang每日一练(leetDay0119) 反转字符串I\II Reverse String
87 0
Golang每日一练(leetDay0119) 反转字符串I\II Reverse String
|
Java
Leetcode 467. Unique Substrings in Wraparound String
大概翻译下题意,有个无限长的字符串s,是由无数个「abcdefghijklmnopqrstuvwxy」组成的。现在给你一个字符串p,求多少个p的非重复子串在s中出现了?
50 0
|
机器学习/深度学习
CF71A Way Too Long Words(string简单模拟)
CF71A Way Too Long Words(string简单模拟)
64 0
|
算法 索引
【LeetCode】string 类的几道简单题
【LeetCode】string 类的几道简单题
【LeetCode】string 类的几道简单题
|
存储 C语言 C++
Leetcode17. 电话号码的字母组合:递归树深度遍历(C++vector和string的小练习)
Leetcode17. 电话号码的字母组合:递归树深度遍历(C++vector和string的小练习)
|
存储 canal 算法
leetcode:43. 字符串相乘(附加一些C++string其他小练习)
leetcode:43. 字符串相乘(附加一些C++string其他小练习)