力扣 344. 反转字符串
题目来源:https://leetcode.cn/problems/reverse-string/description/
C++题解:很简单的一道题,声明一个中间变量,进行字符串前后位置调换就可以了。
class Solution {
public:void reverseString(vector<char>& s) {int len = s.size();char tem = 0;for(int ii = 0; ii < len / 2; ii++) {tem = s[ii];s[ii] = s[len - ii - 1];s[len - ii - 1] = tem;}}
};
也可以直接使用swap函数:
#include <algorithm>
class Solution {
public:void reverseString(vector<char>& s) {int len = s.size();for(int ii = 0; ii < len / 2; ii++) {swap(s[ii], s[len - ii - 1]);}}
};
或者reverse函数:
#include<algorithm>
class Solution {
public:void reverseString(vector<char>& s) {reverse(s.begin(), s.end());}
};
补充reverse_copy函数:原容器不会改变,会将反转的值复制到新容器。
#include <iostream> // For standard streams
#include <iterator> // For stream iterators and begin() and end()
#include <algorithm> // For reverse_copy()string first, second;
first = "123456789";
second.resize(first.size());
reverse_copy(first.begin(), first.end(), second.begin());