当前位置: 首页 > news >正文

力扣刷题——1759.统计同质字符串的数目

题目:

给你一个字符串 s ,返回 s 中 同质子字符串 的数目。由于答案可能很大,只需返回对 109 + 7 取余 后的结果。

同质字符串 的定义为:如果一个字符串中的所有字符都相同,那么该字符串就是同质字符串。

子字符串 是字符串中的一个连续字符序列。

示例 1:

输入:s = "abbcccaa"
输出:13
解释:同质子字符串如下所列:
"a"   出现 3 次。
"aa"  出现 1 次。
"b"   出现 2 次。
"bb"  出现 1 次。
"c"   出现 3 次。
"cc"  出现 2 次。
"ccc" 出现 1 次。
3 + 1 + 2 + 1 + 3 + 2 + 1 = 13

示例 2:

输入:s = "xy"
输出:2
解释:同质子字符串是 "x" 和 "y" 。

示例 3:

输入:s = "zzzzz"
输出:15

最重要的是这个公式,一个长度为 m 的字符串的子字符串的数目为 

2m×(m+1)​

因为对于每一个同质字符串,它的字符串都是同质字符串,而我们可以对原字符串中的每一组同质字符串进行计算

class Solution {
public:
const int MOD = 1e9 + 7;
    int countHomogenous(string s) {
        long long ans=0;
        int slen=s.size();
        int i=0;
        while(i<slen)
        {
            int j=i;
            while(i<slen-1&&s[i]==s[i+1])
            {
                i++;
            }
            int num=i-j+1;
            ans+=(long long)num*(num+1)/2;
            i++;
        }
        return ans%MOD;
    }
};

http://www.dtcms.com/a/66657.html

相关文章:

  • Spring Boot + MyBatis-Plus 项目目录结构
  • 数据结构——环形数组
  • 数字电子技术基础(二十八)——TTL门电路的静态功耗和动态功耗
  • 查找sql中涉及的表名称
  • 使用位运算如何找到数组中只出现一次的数?
  • docker笔记
  • QEMU源码全解析 —— 块设备虚拟化(3)
  • 如何在需求分析阶段考虑未来扩展性
  • c++介绍函数指针 十
  • 面试高频#LeetCode#Hot100-字母异位词分组
  • Generative Image Dynamics(动态图像生成)
  • uni-app学习笔记——自定义模板
  • 基于 GEE 的城市热岛效应分析——可视化地表温度 LST 与归一化植被指数 NDVI 的关联
  • <03.13>八股文补充知识
  • 24个希腊字母
  • Unity中WolrdSpace下的UI展示在上层
  • AI智能分析网关V4将HTTP消息推送至安防监控视频汇聚EasyCVR平台的操作步骤
  • JAVA面试_进阶部分_dubbo负载均衡策略
  • uniapp APP使用web-view内嵌 h5 解决打包发版浏览器有缓存需要清除的问题
  • IO多路复用——epoll(20250307)
  • 关于Linux contOS 7 的防火墙
  • 蓝桥杯 之 回溯之充分剪枝
  • 深度学习优化算法全面解析:从理论到实践
  • PyTorch vs NumPy:核心区别与选择指南
  • wow-rag:task2-正式上路搞定模型
  • 红帆 iOffice M2 移动端密码爆破的渗透测试思路,绕过客户端实现Burpsuite批量跑,分享渗透思路,共建网络安全
  • 二维数组基础
  • BLEU评估指标
  • 静态程序分析
  • 网络安全和文档的关系