您的位置:首页 > 其它

The Solution to Leetcode 541 Reverse String II

2017-04-23 18:54 465 查看
Question:

Given a string and an integer
k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the
first k characters and left the other as original.

Example:

Input: s = "abcdefg", k = 2
Output: "bacdfeg"


Restrictions:
The string consists of lower English letters only.
Length of the given string and k will in the range [1, 10000]

思路:利用递归的思想解决就OK了。
Answer:

class Solution {
public:
string reverseStr(string s, int k) {
int n;
n = s.size() / k;
for (int i = 0; i <= n; i++) {
if (i % 2 == 0) {
if (i * k + k < s.size())
{
reverse(s.begin() + i * k, s.begin() + i * k + k);
}
else
{
reverse(s.begin() + i * k, s.end());
}
}
}
return s;

}
};

run code results:



Your input

"abcdefg"
2



Your answer

"bacdfeg"



Expected answer

"bacdfeg"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: