給定一個字串和一個整數k,對字串開頭算起的每2k個字元的前k個字元進行反轉。 如果還有少於k個字元,則將其全部撤消。 如果小於2k但大於或等於k個字元,則反轉前k個字元,
本題源自leetcode 541
-------------------------------------------------------------
思路:遍歷字串,跳度為 2 * k.每次反轉前k 個字串。
程式碼:
string reverseStr(string s, int k) { for(int i = 0; i < s.length(); i += 2 * k){ reverse(s.begin() + i, min(s.begin() + i + k, s.end())); } return s; }
程式碼2;
string reverseStr(string s, int k) {
for(int start = 0; start < s.size(); start += 2 * k){
int i = start, j = min(start + k - 1, (int)s.size() -1);
for(; i < j; i++, j--)
swap(s[i],s[j]);
}
return s;
}