541. 反轉(zhuǎn)字符串 II
給定一個字符串 s
和一個整數(shù) k
未荒,你需要對從字符串開頭算起的每隔 2k
個字符的前 k
個字符進行反轉(zhuǎn)遍希。
- 如果剩余字符少于
k
個,則將剩余字符全部反轉(zhuǎn)巡验。 - 如果剩余字符小于
2k
但大于或等于k
個,則反轉(zhuǎn)前k
個字符碘耳,其余字符保持原樣显设。
示例:
輸入: s = "abcdefg", k = 2
輸出: "bacdfeg"
暴力
class Solution {
public:
string reverseStr(string s, int k) {
if(s == "") return s;
if(s.size() <= k) {
reverse(s.begin(), s.end());
return s;
}
for (int start = 0; start < s.size(); start += k * 2) {
int i = start;
int j = min<int>(start + k - 1, s.size() - 1);
while (i < j) {
char tmp = s[i];
s[i++] = s[j];
s[j--] = tmp;
}
}
return s;
}
};