LeetCode-344。逆文字列

説明

入力文字列を逆にする役割を持つ関数を記述します。入力文字列は、文字配列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;
            }
        }
    };

 

おすすめ

転載: blog.csdn.net/u010323563/article/details/112493460