题目: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;
}
};
本文介绍了一种字符串处理技巧,即在保持单词顺序不变的情况下,如何反转每个单词中的字符顺序。通过一个具体的C++实现案例,展示了如何使用双指针法来完成这一任务。此方法对于熟悉字符串操作和算法实现具有一定的参考价值。

1万+

被折叠的 条评论
为什么被折叠?



