- 力扣题目:344. 反转字符串
- 就是交换头尾字符的位置
- 使用双指针来完成,头指针从首字母开始,尾指针从尾字母开始
- 两个指针一个从前向后移动,一个指针从后向前移动,直接头指针的位置比尾位置不大于时停止
- 这是算法中最基础的部分,但写起来还是出错了,尾指针忘记加减减
- 这里所说的指针就是字符数组的下标的值
#include <iostream>
#include <vector>
class Solution {
public:
void reverseString(std::vector<char>& s) {
int len = s.size();
for (int i = 0, j = len - 1; i < len / 2; ++i, --j)
std::swap(s.at(i), s.at(j));
}
};
int main()
{
std::vector<char> str {'a', 'b', 'c', 'd', 'e'};
Solution s;
s.reverseString(str);
for (auto c: str)
std::cout << c << " ";
std::cout << std::endl;
return 0;
}