题面:
557. Reverse Words in a String III
DescriptionHintsSubmissionsDiscussSolution
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"
Note: In the string, each word is separated by single space and there will not be any extra space in the string.
解题:
逐段反转,注意下边界处理即可。
代码:
#include <algorithm>
using namespace std;
class Solution {
public:
string reverseWords(string s) {
string tmp="",res="";
for(int i=0;i<s.length();i++){
if(s[i]==' ')
{
reverse(tmp.begin(),tmp.end());
res+=tmp;
tmp="";
res+=" ";
}
else{
tmp+=s[i];
}
}
reverse(tmp.begin(),tmp.end());
res+=tmp;
return res;
}
};