力扣 344.反转字符串
题目:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
题解1:使用库函数reverse
class Solution {
public:
void reverseString(vector<char>& s) {
return reverse(s.begin(),s.end());//直接调用库函数reverse,将字符串首尾对调,但这不是题目初衷,了解reverse使用即可。
}
};
题解2:双指针
注意循环结束的条件
class Solution {
public:
void reverseString(vector<char>& s) {
for(int i = 0 , j = s.size() - 1; i < (s.size()) / 2 ;i++,j--){//这里等于也是用了双指针,i在字符串最前面,j在字符串最后面,同时向中间移动,移动到中间时停止。
swap(s[i],s[j]);//swap操作交换
}
}
};