leetcode344_翻转字符串


一、题目

 二、代码

class Solution {
public:
    void reverseString(vector<char>& s) {
        //长度
        int string_len = s.size();
        //这个也可以使用双指针翻转
        int left = 0;
        int right = string_len - 1;
        char pre ;
        while(left<right){
            pre = s[right];
            s[right] = s[left];
            s[left] = pre;
            left++;
            right--; 
        }
    }
};

 主要要求是要原地翻转,所以不妨使用双指针,一前一后,这样可以实现对单个字符的翻转。

三、分析

时间复杂度为O(n),空间复杂度为O(1)。