[M数学] lc1759. 统计同构子字符串的数目(数学+等差求和)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[M数学] lc1759. 统计同构子字符串的数目(数学+等差求和)相关的知识,希望对你有一定的参考价值。

文章目录

1. 题目来源

链接:1759. 统计同构子字符串的数目

2. 题目解析

分析题目,连续字符串对答案的贡献实际上是 等差数列求和 即可,采用双指针求出连续字符串即可,注意防溢出。


  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( 1 ) O(1) O(1)

class Solution 
public:
    const int MOD = 1e9+7;
    int countHomogenous(string s) 
        int res = 0;
        for (int l = 0, r = 0; r < s.size(); ) 
            while (r < s.size() && s[r] == s[l]) r ++ ;
            int n = r - l;
            res = res + (n * (n + 1ll) / 2 % MOD) % MOD;
            l = r;
        

        return res;
    
;

以上是关于[M数学] lc1759. 统计同构子字符串的数目(数学+等差求和)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1759. 统计同构子字符串的数目

LeetCode 1759. 统计同构子字符串的数目

[M二叉树] lc1104. 二叉树寻路(思维+找规律+数学)

[M贪心] lc1353. 最多可以参加的会议数目(扫描线+STL优先队列)

[M模拟] lc5824. 子字符串突变后可能得到的最大整数(模拟+代码细节+周赛251_2)

[E前缀和] lc1588. 所有奇数长度子数组的和(前缀和+数学)