題目描述:
給定一個字元串和一個整數 k,你需要對從字元串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少于 k 個字元,則将剩餘的所有全部反轉。如果有小于 2k 但大于或等于 k 個字元,則反轉前 k 個字元,并将剩餘的字元保持原樣。
要求:
該字元串隻包含小寫的英文字母。
給定字元串的長度和 k 在[1, 10000]範圍内。
輸入示例1:
輸入: s = "abcdefg", k = 2
輸出: "bacdfeg"
class Solution {
public:
string reverseStr(string s, int k) {
int len=s.size();
for(int i=0;i<len;i+=k*2){
int left=i;
int right=min(left+k-1,len-1);//這裡需要提醒一下:min()内部隻能給數字,不能寫s.size()它會認為是字元串類型,報錯
while(left<right){
swap(s[left],s[right]);
left++;
right--;
}
}
return s;
}
};