leetcode_828_统计子串中的唯一字符

题意:所有子串中单个字符出现的次数和

问题转化:对于串中的每个字符,只包含其一次的所有子串的个数和

关于求只包含某位置字符一次的子串个数

cpp 复制代码
class Solution {
public:
    int uniqueLetterString(string s) {
        /* 
        ...A...A...A...
        */
       int n = s.size();
       vector<int> alpha(26, -1);
       vector<int> leftBound(n, -1); // 记录每个位置的左端点
       for(int i = 0; i < n; i++)
       {
           leftBound[i] = alpha[s[i] - 'A'];
           alpha[s[i] - 'A'] = i;
       }

       std::fill(alpha.begin(), alpha.end(), n);
       vector<int> rightBound(n, n); // 记录每个位置的右端点
       for(int i = n - 1; i >= 0; i--)
       {
           rightBound[i] = alpha[s[i] - 'A'];
           alpha[s[i] - 'A'] = i;
       }

       int ret = 0;
       for(int i = 0; i < n; i++)
       {
           ret += (i - leftBound[i]) * (rightBound[i] - i);
       }
       return ret;
        
    }
};
相关推荐
kobesdu8 小时前
FAST-LIO2 + 蓝海M300激光雷达:从建图到实时栅格图的完整流程
算法·机器人·ros·slam·fast lio
x_xbx8 小时前
LeetCode:438. 找到字符串中所有字母异位词
算法·leetcode·职场和发展
MThinker8 小时前
K230+canMV+micropython实现低成本MLX90640红外热成像测温模块(续)
算法·智能硬件·micropython·canmv·k230
小菜鸡桃蛋狗8 小时前
C++——string(下)
算法
学习永无止境@8 小时前
灰度图像中值滤波算法实现
图像处理·算法·计算机视觉
ysa0510308 小时前
斐波那契上斐波那契【矩阵快速幂】
数据结构·c++·笔记·算法
CHANG_THE_WORLD9 小时前
模拟解析:宽度数组 `[1,2,1]`,10个条目的 XRef 流
java·前端·算法
lixinnnn.9 小时前
多源BFS:矩阵距离
算法·宽度优先
CHANG_THE_WORLD9 小时前
PDFium 处理通用 `W` 数组的方式
数据结构·算法
派大星~课堂9 小时前
【力扣-94.二叉树的中序遍历】Python笔记
笔记·python·leetcode