Time: 20190908
Type: Easy
链接:https://leetcode-cn.com/contest/biweekly-contest-8/problems/count-substrings-with-only-one-distinct-letter/

题目描述

给你一个字符串 S,返回只含 单一字母 的子串个数。

示例 1:

输入: “aaaba”
输出: 8
解释:
只含单一字母的子串分别是 “aaa”, “aa”, “a”, “b”。
“aaa” 出现 1 次。
“aa” 出现 2 次。
“a” 出现 4 次。
“b” 出现 1 次。
所以答案是 1 + 2 + 4 + 1 = 8。
示例 2:

输入: “aaaaaaaaaa”
输出: 55

提示:

1 <= S.length <= 1000
S[i] 仅由小写英文字母组成。

思路

注意字符串"aa"有三个子串,左右两个"a"和"a"是不一样的。

观察到有n个相同元素的子串有个规律是:总的只含单一字母的子串数量是n * (n + 1) // 2。

代码

class Solution:def countLetters(self, S: str) -> int:# 连续长度为n的相同元素的单个字符子串个数为:n(n+1) / 2# 统计连续出现的个数total = 0n = 1S = S + '#' # 添加一个哨兵结点for i in range(1, len(S)):if S[i] == S[i-1]:n += 1else:total += n * (n + 1) // 2n = 1return total

END.

Leetcode 5067.统计只含单一字母的子串相关推荐

  1. LeetCode 1180. 统计只含单一字母的子串

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 S,返回只含 单一字母 的子串个数. 示例 1: 输入: "aaaba" 输出: 8 解释: 只含单一字母的子串分别是 ...

  2. LeetCode 1638. 统计只差一个字符的子串数目(DP)

    文章目录 1. 题目 2. 解题 2.1 暴力枚举 2.2 DP 1. 题目 给你两个字符串 s 和 t ,请你找出 s 中的非空子串的数目,这些子串满足替换 一个不同字符 以后,是 t 串的子串. ...

  3. 对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后

    对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后 如 AxcBsYuC 排序得 ABCcxY 提示:利用map实现自定义的ascii码表.再用冒泡法排序. 在这里插入代码片 publ ...

  4. 1638 统计只差一个字符的子串数目(动态规划)

    1. 问题描述: 给你两个字符串 s 和 t ,请你找出 s 中的非空子串的数目,这些子串满足替换一个不同字符以后,是 t 串的子串.换言之,请你找到 s 和 t 串中恰好只有一个字符不同的子字符串对 ...

  5. 【算法题】1638. 统计只差一个字符的子串数目

    插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 题目: 给你两个字符串 s 和 t ,请你找出 ...

  6. LeetCode 828. 统计子串中的唯一字符(中心扩展)

    1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数. 例如:s = "LEETCODE" ,则其中 &qu ...

  7. 连续字母长度 给定一个字符串 只包含大写字母

    注意!答案仅作为参考(实际考试中下列代码通过用例100%,但不代表最优解) 给定一个字符串 只包含大写字母 求在包含同一字母的子串中 长度第K长的子串 相同字母只取最长的子串 输入第一行 一个子串 1 ...

  8. LeetCode 2135. 统计追加字母可以获得的单词数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你两个下标从 0 开 ...

  9. 2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写

    2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. 为了简单起见,你可以假设: words.txt只包括小写字母和 ' ' . 每个单词只由小写 ...

最新文章

  1. 获取DataRow某列的值的封装
  2. 2021年移动云API应用创新开发大赛火热开启!
  3. python使用imbalanced-learn的CondensedNearestNeighbour方法进行下采样处理数据不平衡问题
  4. Android中的进程
  5. php的json_encode实例,php json_encode()函数返回json数据实例代码
  6. TiDB 源码阅读系列文章(十六)INSERT 语句详解
  7. mysql负载均衡分区_分区和负载均衡让MySQL更大更好
  8. Storm介绍及核心组件和编程模型
  9. web安全day21:学习使用最基本的批处理程序
  10. C++基础知识面试精选100题系列(11-20题)[C++ basics]
  11. Linux 常用命令 权限管理命令
  12. tp框架中构造函数__construct()与初始化函数_initialize()的区别
  13. es 创建索引 指定id_Elasticsearch创建索引流程
  14. 华尔街最闪耀的新星:量子计算
  15. python np float_Python astype(np.float)函数使用方法解析
  16. “Win7内部版本7600此Windows副本不是正版”解决方法
  17. 第三十二章 三更雪压飞狐城(三之全)
  18. 7-56 福到了 (15 分)
  19. CASA(Carnegie-Ames-Stanford Approach)模型、MAXENT模型
  20. java转换docx为doc文件_java使用poi转换doc/docx为pdf

热门文章

  1. 【学习OpenCV4】图像像素数据类型的转换与归一
  2. elasticsearch sort illegal_argument_exception error
  3. python fund_Python fund-my-watcard包_程序模块 - PyPI - Python中文网
  4. 定义域可以写成不等式吗_高一数学第一次月考考点之抽象函数定义域详解
  5. 华中师范大学邮箱matlab,正版软件管理与服务平台(华中师范大学)
  6. [已解决] org.hibernate.AnnotationException:未为实体类指定标识符
  7. Python多行字符串
  8. 字符函数和字符串函数_R中的字符串–函数及其操作
  9. java堆 数据结构 堆_快速堆数据结构
  10. easymock接口模拟_EasyMock模拟异常