题目: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.
面CVTE的实习的时候抽到了一道题跟这道题目类似,我抽到的题目是要把单词的位置对调,比如you are dog就变成dog are you.
这道题的代码如下:
class Solution {
public:
string inv(string str){
for(int i = 0; i < str.length()/2; i++)
{
char tmp;
tmp = str[i];
str[i] = str[str.length()-1-i];
str[str.length()-1-i] = tmp;
}
return str;
}
string reverseWords(string s) {
int begin = 0, end = 0;
string res = "";
while(end < s.length()){
while(end != s.length()-1 && s[end] != ' '){
end++;
}
if(end != s.length()-1)
res += inv(s.substr(begin, end-begin)) + " ";
else
res += inv(s.substr(begin, end+1-begin));
begin = end+1;
end++;
}
return res;
}
};