Leetcode.344 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
输入:s = ["h","e","l","l","o"]
输出:["o","l","l","e","h"]
1. 核心代码
class Solution {
public:
void reverseString(vector<char>& s) {
for (int i = 0, j = s.size() - 1; i < s.size() / 2; i++, j--) {
swap(s[i], s[j]);
}
}
};
2. 完整代码
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
class Solution {
public:
void reverseString(vector<char>& s) {
for (int i = 0, j = s.size() - 1; i < s.size() / 2; i++, j--) {
swap(s[i], s[j]);
}
}
};
int main()
{
vector<char> s;
char ch;
ch = getchar();
while (ch != '\n')
{
s.push_back(ch);
ch = getchar();
}
Solution S;
S.reverseString(s);
for (auto ch : s)
cout << ch;
}
总结
使用双指针法,类似反转链表。