String:541. Reverse String II
2017-09-12 16:57
316 查看
提交了好几遍才过的。思路就是设一个下标cur,是每个2k的开始位置,根据cur判断cur位置后面够不够2k,如果不够k,翻转剩下的所有;如果够k但不够2k,翻转前k个。
class Solution {
public:
string reverseStr(string s, int k) {
int cur = 0;
while(1)
{
if(s.size() - cur < k)
{
reverse(s.begin() + cur, s.end());
cout << s << endl;
break;
}
if(s.size() - cur >= k && s.size() - cur <= 2 * k)
{
reverse(s.begin() + cur, s.begin() + cur + k);
break;
}
reverse(s.begin() + cur, s.begin() + cur + k);
cur = cur + 2 * k;
}
return s;
}
}; 同样的思路,看别人的代码:
class Solution {
public:
string reverseStr(string s, int k) {
for (int i = 0; i < s.size(); i += 2*k)
reverse(s.begin()+i, min(s.begin()+i+k, s.end()));
return s;
}
};
相关文章推荐
- LeetCode 541 Reverse String II
- LeetCode 541 Reverse String II
- [LeetCode]541. Reverse String II(间隔反转字符串)
- LeetCode 541:Reverse String II (c++)
- LeetCode 541. Reverse String II
- leetcode 541. Reverse String II 反转字符串
- 541. Reverse String II
- leetcode -- 541. Reverse String II 【字符串反转 + 双指针 + 状态记录 + 数组与堆内存】
- leetcode 541. Reverse String II(easy)
- 541. Reverse String II
- 541. Reverse String II
- [leetcode] - 541 Reverse String II
- 541. Reverse String II(C语言版本)
- Leetcode #541 Reverse String II
- [LeetCode] 344 Reverse String && 541 Reverse String II
- LeetCode之路:541. Reverse String II
- 541. Reverse String II
- leetcode 541 Reverse String II C++
- LeetCode-541. Reverse String II (Java)
- 541. Reverse String II