力扣6050. 字符串的总引力

力扣6050. 字符串的总引力_第1张图片
力扣6050. 字符串的总引力_第2张图片
力扣6050. 字符串的总引力_第3张图片

解题思路

记录每个字母上一次的下标,累加贡献;

设定贡献为一个字母在子字符串第一次出现时产生贡献,后续重复出现不贡献;

则每次贡献为 左边有 i - lastpos 种选法,右边有 n - i 种选法;

初始位置设为-1;

代码

class Solution {
public:
    long long appealSum(string nums) {
        vector<int> lastpos(26, -1);
        long long sum = 0;
        for (int i = 0; i < nums.size(); i++) {
            sum += (nums.size() - i) * (i - lastpos[nums[i] - 'a']);
            lastpos[nums[i] - 'a'] = i;
        }
        return sum;
    }
};

你可能感兴趣的:(算法,leetcode,算法,职场和发展)