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;}
};