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:
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
Your answer
Expected answer
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"
相关文章推荐
- leetcode 541. Reverse String II(easy)
- leetcode541 Reverse StringII java
- LeetCode 541 Reverse String II
- [LeetCode] 344 Reverse String && 541 Reverse String II
- leetcode -- 541. Reverse String II 【字符串反转 + 双指针 + 状态记录 + 数组与堆内存】
- [leetcode]541. Reverse String II
- [leetcode] - 541 Reverse String II
- LeetCode解题报告—— Linked List Cycle II & Reverse Words in a String & Fraction to Recurring Decimal
- [Leetcode] 541. Reverse String II 解题报告
- [LeetCode]541. Reverse String II(间隔反转字符串)
- Leetcode #541 Reverse String II
- LeetCode 541:Reverse String II (c++)
- Leetcode 8. String to Integer (atoi) The Solution of Python
- LeetCode-541. Reverse String II (Java)
- LeetCode 541. Reverse String II(C++版)
- [leetcode]: 541. Reverse String II
- LeetCode 541. Reverse String II (反转字符串 II)
- leetcode 541. Reverse String II 反转字符串
- LeetCode 541. Reverse String II
- LeetCode 541. Reverse String II (字符串翻转)