本文链接:
https://blog.csdn.net/qq_34811382/article/details/113404064
344. 反转字符串
思路:
双指针,两个指针,一个从前向后走,一个从后向前走,交换位置。
代码:
class Solution
{
public:
void reverseString(vector<char> &s)
{
int i = 0, j = s.size() - 1;
while (i < j)
{
swap(s[i], s[j]);
j--;
i++;
}
}
};
557. 反转字符串中的单词 III
思路:
双指针。一快一慢,快的遇到空格就停止,然后反转慢指针与快指针。
然后令慢指针移动到快指针。
代码:
class Solution
{
public:
string reverseWords(string s)
{
string::iterator first = s.begin(), end = s.begin();
while (end != s.end() && first != s.end())
{
if (*end == ' ' || end == s.end())
{
reverse(first, end);
first = end + 1;
end++;
}
end++;
if (end == s.end())
{
reverse(first, end);
}
}
return s;
}
};