> 文章列表 > 力扣 344. 反转字符串

力扣 344. 反转字符串

力扣 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());