LeetCode 541. Reverse String II
2017-08-09 10:45
417 查看
541. Reverse String II
4000
Description
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: 1. The string consists of lower English letters only. 2. Length of the given string and k will in the range [1, 10000]
Solution
题意即给定一个字符串和一个正整数k,要求每隔2k个位置,将字符串k个长度的子串颠倒。如果长度不满足2k或k,则以最大长度为计。利用循环控制处理起始位置,然后用while循环处理颠倒,中间注意处理k、2k过大的情况。代码如下。
char* reverseStr(char* s, int k) { int len = strlen(s); for (int i = 0;i < len;i+=2*k) { int l = i,r = i + k - 1; if (r >= len) r = len - 1; while (l < r) { char temp = s[l]; s[l] = s[r]; s[r] = temp; l++; r--; } } return s; }
相关文章推荐
- leetcode 541. Reverse String II(easy)
- Leetcode OJ Contest23 Reverse String II_Leetcode541
- [Leetcode] 541. Reverse String II 解题报告
- LeetCode 541. Reverse String II (反转字符串 II)
- Leetcode #541 Reverse String II
- Leetcode 541. Reverse String II(Easy)
- [leetcode] - 541 Reverse String II
- leetcode 541. Reverse String II 反转字符串
- [LeetCode] 344 Reverse String && 541 Reverse String II
- [leetcode]541. Reverse String II
- leetcode541 Reverse StringII java
- [leetcode]: 541. Reverse String II
- [LeetCode]541. Reverse String II(间隔反转字符串)
- LeetCode 541. Reverse String II(C++版)
- LeetCode 541:Reverse String II (c++)
- The Solution to Leetcode 541 Reverse String II
- LeetCode:541. Reverse String II
- LeetCode-541. Reverse String II (Java)
- leetcode -- 541. Reverse String II 【字符串反转 + 双指针 + 状态记录 + 数组与堆内存】
- LeetCode 541 Reverse String II