天天看點

LeetCode_541_Reverse String II_反轉字元串2

題目描述:

給定一個字元串和一個整數 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;
    }
};