説明
入力文字列を逆にする役割を持つ関数を記述します。入力文字列は、文字配列char []の形式で指定されます。
別の配列に余分なスペースを割り当てないでください。この問題を解決するには、入力配列をその場で変更し、O(1)の余分なスペースを使用する必要があります。
配列内のすべての文字は、ASCIIコードテーブル内の印刷可能な文字であると想定できます。
例1:
取入:["h"、 "e"、 "l"、 "l"、 "o"]
輸出出:["o"、 "l"、 "l"、 "e"、 "h"]
表示例2:
取入:["H"、 "a"、 "n"、 "n"、 "a"、 "h"]
輸出出:["h"、 "a"、 "n"、 "n"、 "a"、 「H」]
ソース:LeetCode
リンク:https://leetcode-cn.com/problems/reverse-string/
解決する
class Solution {
public:
// 方法一,使用算法reverse原地翻转
void reverseString_1e(vector<char> &s) {
std::reverse(s.begin(), s.end());
}
// 方法二
void reverseString(vector<char> &s) {
const int n = s.size();
int left = 0;
int right = n - 1;
while (left < right) {
std::swap(s[left], s[right]);
++left;
--right;
}
}
};