按照题目要求,我们要将字符串反过来输出,并且不能使用多于O(1)的额外空间来存储。所以这意味着我们要直接将原数组上的头尾交换进行交换,并只能使用一个字符型的临时变量来存储。
只需遍历一半的数组,因为在遍历前一半之后,已经和后一半进行完交换了,若遍历整个数组就又调换回原来了。s[i]是从头至尾第i个元素,s[s.size()-1-i]则表示与之对应需要调换的倒数第i个元素。这里我们使用t来存储s[i],之后将s[s.size()-1-i]赋值给s[i],将t赋值给s[s.size()-1-i],便完成了头尾的交换。
class Solution {
public:
void reverseString(vector& s) {
for(int i = 0; i < s.size()/2; i++){
char t=s[i];
s[i]=s[s.size()-1-i];
s[s.size()-1-i]=t;
}
}
};



