力扣 541反转链表2

思路:

2k个字符中前k个翻转

如果字符正好2k个,那就去翻转前k个,如果字符不足2k个,那取前K个翻转

因此先写翻转函数,再按着要求翻转

注意边界条件,反转k个,下标是i+k-1,例如0-3是前4个,反转前两个,是0-1

void reverse(string &s,int start,int end)
{
    //实现的功能是,ij之间的内容翻转
    for(int i = start,j = end;start<end;i++,j--)
    {swap(s[i],s[j]);}
}
class Solution {
public:
    void reverse(string& s, int start, int end) {
        for (int i = start, j = end; i < j; i++, j--) {
            swap(s[i], s[j]);
        }
    }
    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, i, i + k - 1);
                continue;
            }
            // 3. 剩余字符少于 k 个,则将剩余字符全部反转。
            reverse(s, i, s.size() - 1);
        }
        return s;
    }
};

相关推荐

  1. 5412

    2024-07-18 22:30:06       23 阅读
  2. 206-

    2024-07-18 22:30:06       51 阅读
  3. 综合(

    2024-07-18 22:30:06       38 阅读
  4. 刷题笔记——

    2024-07-18 22:30:06       64 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 22:30:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 22:30:06       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 22:30:06       58 阅读
  4. Python语言-面向对象

    2024-07-18 22:30:06       69 阅读

热门阅读

  1. Vue3+TypeScript项目目录结构及文件作用

    2024-07-18 22:30:06       24 阅读
  2. Scala之OOP讲解

    2024-07-18 22:30:06       19 阅读
  3. 自动驾驶目标检测常见Metrics

    2024-07-18 22:30:06       22 阅读
  4. Oracle select for update 用法

    2024-07-18 22:30:06       18 阅读
  5. [rustlings]11_hashmaps

    2024-07-18 22:30:06       21 阅读
  6. docker替换主程序排错

    2024-07-18 22:30:06       21 阅读
  7. 好用的Ubuntu下的工具合集[持续增加]

    2024-07-18 22:30:06       22 阅读
  8. OkHttp3

    OkHttp3

    2024-07-18 22:30:06      19 阅读
  9. FastAPI 学习之路(五十四)startup 和 shutdown

    2024-07-18 22:30:06       21 阅读