題目:
這題要求反轉一個字串,並要求直接修改輸入的字元陣列,不能額外分配空間。
使用 Two pointer,一個從頭開始,另一個從尾端開始,然後兩兩 swap,直到 i >= j 就結束,
class Solution {
public:
void reverseString(vector<char>& s) {
int i = 0;
int j = s.size()-1;
while (i < j) {
swap(s[i], s[j]);
i++;
j--;
}
}
};
時間複雜度:O(n)
空間複雜度:O(1)