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; } };
时间: 2023-12-28 09:04:07 浏览: 91
使用C++的string实现高精度加法运算的实例代码
5星 · 资源好评率100%
这是一个 C++ 的类 `Solution`,其中包含一个名为 `reverseStr` 的函数,该函数接受两个参数:一个字符串 `s` 和一个整数 `k`。该函数的作用是将字符串 `s` 中每隔 `2k` 个字符的前 `k` 个字符进行反转,如果剩余字符小于 `2k` 但大于或等于 `k` 个,则反转前 `k` 个字符,如果剩余字符少于 `k` 个,则将剩余字符全部反转。最后,该函数返回反转后的字符串 `s`。
在该函数的实现中,使用了一个 `for` 循环来遍历字符串 `s` 中每隔 `2k` 个字符的前 `k` 个字符。在循环内部,使用了一个 `if-else` 条件语句来判断需要反转的字符个数是否小于 `k`。如果小于 `k`,则将剩余字符全部反转,否则只反转前 `k` 个字符。在反转字符的过程中,使用了 C++ 标准库中的 `reverse` 函数。
阅读全文