- TC: O(n)
- SC: O(1)
本题要求逆转一个字符数组,一个简单的思路就是用两个指针分别从数组头与尾前进,并依次交换直到指针相遇。
// for 版本
class Solution {
public:
void reverseString(vector<char>& s) {
int len = s.size();
for (int i = 0; i < len / 2; i++) {
int temp;
temp = s[i];
s[i] = s[len - 1 - i];
s[len - 1 - i] = temp;
}
}
};
// while 版本
class Solution {
public:
void reverseString(vector<char>& s) {
int left = 0, right = s.size() - 1;
while (left < right) swap(s[left++], s[right--]);
}
};
var reverseString = function(s) {
let left = 0, right = s.length - 1;
while (left < right) {
// swap
[s[left], s[right]] = [s[right], s[left]];
right--;
left++;
}
};