C++描述 LeetCode 5677. 统计同构子字符串的数目

  大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客 ,同时正在尝试在B站中做一些内容分享,B站主页为: 亓官劼的B站主页

本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!
若需联系博主,可以联系本人微信:qiguanjie2015


给你一个字符串 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

提示:

  • 1 <= s.length <= 105
  • s 由小写字符串组成

解题思路

遍历字符串,每次记录当前位置的值,向后遍历,如果相同,则每次cnt+k(如果当前是连续第k个,则可以分别多1,2,3 ……k个字母的同构,所以对于第k个连续字母,cnt+k)。

算法实现

class Solution {public:int countHomogenous(string s) {int len = s.length();int i = 0;long long int cnt = 0;while(i < len){char temp = s[i];cnt = (cnt + 1) % 1000000007;i++;int k = 1;while(s[i] == temp){k++;cnt = (cnt + k) %1000000007;i++;}}return cnt;}
};

C++描述 LeetCode 5677. 统计同构子字符串的数目相关推荐

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

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 s ,返回 s 中 同构子字符串 的数目. 由于答案可能很大,只需返回对 10^9 + 7 取余 后的结果. 同构字符串 的定义为:如果一 ...

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

    文章目录 1. 题目来源 2. 题目解析 1. 题目来源 链接:1759. 统计同构子字符串的数目 2. 题目解析 分析题目,连续字符串对答案的贡献实际上是 等差数列求和 即可,采用双指针求出连续字符 ...

  3. Leetcode.1641 统计字典序元音字符串的数目

    题目链接 Leetcode.1641 统计字典序元音字符串的数目 Rating : 1519 题目描述 给你一个整数 n,请返回长度为 n.仅由元音 (a, e, i, o, u)组成且按 字典序排列 ...

  4. LeetCode 1641. 统计字典序元音字符串的数目(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n,请返回长度为 n .仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量. 字符串 s 按 字典序排列 需要满足 ...

  5. C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数

    C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...

  6. 字符串专题-LeetCode:剑指 Offer 58 - II. 左旋转字符串、LeetCode 459.重复的子字符串、 代码思路和注意点

    文章目录 一.剑指 Offer 58 - II. 左旋转字符串 二.LeetCode 459.重复的子字符串 一.剑指 Offer 58 - II. 左旋转字符串 思路: 预留出n个字符空间s.res ...

  7. 字符串删除首尾_[LeetCode] 459. 重复的子字符串

    题目链接: https://leetcode-cn.com/problems/repeated-substring-pattern 难度:简单 通过率:42.6% 题目描述: 给定一个非空的字符串,判 ...

  8. LeetCode 459. 重复的子字符串(数学)

    1. 题目 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000. 示例 1: 输入: "abab" 输出: T ...

  9. 拆分字符串使唯一子字符串的数目最大

    思路: 方法一:回溯 拆分给定的字符串,要求拆分后的每个子字符串唯一,求子字符串的最大数目,可以通过回溯算法实现. 对于长度为 n的字符串,有n−1个拆分点.从左到右遍历字符串,对于每个拆分点,如果在 ...

最新文章

  1. 七年磨一剑:Apache HBase 1.0正式发布
  2. linux 公私钥生成,[c++,openssl,RSA] linux下编程实现生成公私钥对_1
  3. Nginx设置本地浏览器缓存
  4. ABAP常见面试问题
  5. dataframe数据标准化处理_数据预处理——标准化/归一化(实例)
  6. (十二)C3P0连接池使用教程
  7. React开发(171):处理删除与批量删除操作
  8. 1 微信公众号开发 服务器配置 有什么用
  9. 我的python 入门 安装 -- hello world
  10. Java语言 List 和 Array 相互转换
  11. 炒股如果亏损一直买入可行吗
  12. javascrip对表格的操作(三)
  13. 几个安卓 app 暴露超1亿用户的数据
  14. android贪吃蛇设计报告,基于android的贪吃蛇游戏设计与开发
  15. jar转apk专辑 android,jar转apk格式转换器
  16. Tableau数据可视化案例
  17. 卸载WPS后Office文档图标显示异常
  18. 定量数据和定性数据_定性数据:赋予大数据意义的上下文
  19. 攻防世界misc 新手练习区 高手进阶区 wp
  20. html背景渲染原理(body透明渐变)

热门文章

  1. loglog()函数
  2. UEFI 及 legacy 重装系统
  3. 优秀的html布局,优秀的网页设计中常见的六大布局
  4. 带你玩转kubernetes-k8s(第61篇-Kubernetes之资源紧缺时的Pod驱逐机制)
  5. Dynamo Revit 钢箱梁、混凝土箱梁、桥墩、盖梁建模的相关经验
  6. 前端取值的方式(ModelMap)
  7. 标准H.460公私网穿越视频解决方案
  8. 自动化测试面试题及答案,看完后吊打面试官!
  9. 云服务器搭建nacos服务
  10. 携程商旅酒店直连平台的实践(一)