题目描述:
Given an input string , reverse the string word by word.
Example:
Input: ["t","h","e"," ","s","k","y"," ","i","s"," ","b","l","u","e"]
Output: ["b","l","u","e"," ","i","s"," ","s","k","y"," ","t","h","e"]
Note:
- A word is defined as a sequence of non-space characters.
- The input string does not contain leading or trailing spaces.
- The words are always separated by a single space.
Follow up: Could you do it in-place without allocating extra space?
class Solution {
public:
void reverseWords(vector<char>& str) {
reverse(str.begin(),str.end());
int i=0;
int j=0;
while(j<str.size())
{
if(j==str.size()-1)
{
reverse(str.begin()+i,str.end());
break;
}
else if(str[j]==' ')
{
reverse(str.begin()+i,str.begin()+j);
j++;
i=j;
}
else j++;
}
}
};
本文介绍了一种高效的字符串反转算法,特别适用于单词级别的反转操作。通过迭代和条件判断,该方法能够不使用额外空间就地反转字符串中的每个单词,适用于C++等编程语言。此算法对于理解和实现字符串处理功能至关重要。
442

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



