怎样优化网站自然排名,慈溪建设网站,去除wordpress版权,html软件官方下载代码随想录二刷 #xff5c;字符串 #xff5c;反转字符串II 题目描述解题思路 代码实现 题目描述
541.反转字符串II
给定一个字符串 s 和一个整数 k#xff0c;从字符串开头算起#xff0c;每计数至 2k 个字符#xff0c;就反转这 2k 字符中的前 k 个字符。
如果… 代码随想录二刷 字符串 反转字符串II 题目描述解题思路 代码实现 题目描述
541.反转字符串II
给定一个字符串 s 和一个整数 k从字符串开头算起每计数至 2k 个字符就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。
示例 1
输入s “abcdefg”, k 2 输出“bacdfeg”
示例 2
输入s “abcd”, k 2 输出“bacd”
提示
1 s.length 104s 仅由小写英文组成1 k 104
解题思路 代码实现
再循环中让i的步长为2k即可剩余字符 s.szie() - i根据条件可得不等式k s.size() - i 2k化简一下可得k i s.size() 2k i我们要找的是最小满足条件因此用k i s.szie()就可以。
class Solution {
public:string reverseStr(string s, int k) {for (int i 0; i s.size(); i (2 * k)) {// 1.每隔 2k 个字符的前 k 个字符进行反转// 2.剩余字符小于 2k 且大于等于 k 反转前 k 个字符if (i k s.size()) {reverse(s.begin() i, s.begin() i k);} else { // 3.剩余字符小于 k 个则将剩余字符全部反转reverse(s.begin() i, s.end());}}return s;}
};