763.划分字幕区间(C++)

在这里插入图片描述

// 定义一个名为Solution的类
class Solution {
public:
    // 定义一个公开成员函数partitionLabels,输入一个字符串S,输出一个整数向量(vector)
    vector<int> partitionLabels(string S) {
        // 初始化一个长度为27的整数数组hash,用于存储每个小写字母('a'-'z')最后一次出现的位置
        int hash[27] = {0};

        // 遍历输入字符串S的每一个字符
        for (int i = 0; i < S.size(); i++) {
            // 更新该字符在hash数组中的值,记录它在字符串中最后一次出现的位置
            hash[S[i] - 'a'] = i;
        }

        // 初始化结果向量result,用于存储分割后的子串长度
        vector<int> result;

        // 初始化左边界left和右边界right变量
        int left = 0;
        int right = 0;

        // 遍历字符串S
        for (int i = 0; i < S.size(); i++) {
            // 更新右边界right为当前遍历到的字符对应的最大边界(即其在字符串中最后一次出现的位置)
            right = max(right, hash[S[i] - 'a']);

            // 当前字符所在位置等于右边界时,说明已经找到了一个连续的、包含所有字符至少一次的子串
            if (i == right) {
                // 将这个子串的长度(right-left+1)添加到结果向量result中
                result.push_back(right - left + 1);

                // 左边界更新为当前子串的下一个位置,开始寻找下一个满足条件的子串
                left = i + 1;
            }
        }

        // 返回结果向量result
        return result;
    }
};

这段代码实现了一个名为Solution的类,其中有一个成员函数partitionLabels。给定一个字符串S,该函数将字符串分割成多个子串,使得每个子串包含的字符都是互异且连续的。最终返回一个整数向量,表示各个子串的长度。通过创建一个哈希表(在这里使用数组hash)来记录每个字符最后一次出现的位置,并逐步更新左右边界以找到符合条件的子串。

相关推荐

  1. 力扣:763. 划分字母区间

    2024-04-07 04:04:01       47 阅读

最近更新

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

    2024-04-07 04:04:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 04:04:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 04:04:01       62 阅读
  4. Python语言-面向对象

    2024-04-07 04:04:01       72 阅读

热门阅读

  1. OpenAI称其正在研究模仿人类声音的人工智能

    2024-04-07 04:04:01       42 阅读
  2. 》shader命令《--材质函数整理

    2024-04-07 04:04:01       38 阅读
  3. Vue探索之Vue2.x源码分析(一)

    2024-04-07 04:04:01       44 阅读
  4. 创建云原生应用程序:15个要素

    2024-04-07 04:04:01       34 阅读
  5. LeetCode-热题100:347. 前 K 个高频元素

    2024-04-07 04:04:01       33 阅读
  6. 内建函数对象

    2024-04-07 04:04:01       81 阅读
  7. 图像识别与增强现实(AR)的结合

    2024-04-07 04:04:01       37 阅读
  8. docker部署nginx访问宿主机服务,并使用缓存

    2024-04-07 04:04:01       114 阅读
  9. Leetcode 537. 复数乘法

    2024-04-07 04:04:01       107 阅读
  10. Zookeeper 怎么实现分布式锁

    2024-04-07 04:04:01       42 阅读
  11. WebKit简单介绍

    2024-04-07 04:04:01       38 阅读