字符串day7
344 反转字符串
字符串理论上也是一个数组,因此只需要用双指针即可
class Solution {
public:void reverseString(vector<char>& s) {for(int i=0,j=s.size()-1;i<j;i++,j--){swap(s[i],s[j]);}}
};
541 反转字符串
自己实现一个反转从start到end的字符串函数,然后进行反转。要记住for循环的i,j初始化语法
class Solution {
public:void reverse(string& s,int start,int end){ //反转从start到end这段闭区间的字符for(int i =start,j=end;i<j;i++,j--){ //语法,for循环中的i,j必须在for里面初始化swap(s[i],s[j]);}}string reverseStr(string s, int k) {for (int i=0;i<s.size();i=i+2*k){//反转前k个字符if (s.size()-i>=k){reverse(s,i,i+k-1);//反转从i到i+k-1这段闭区间的字符continue;}reverse(s,i,s.size()-1);}return s;}
};