LeetCode 1180. 统计只含单一字母的子串
题目描述
给你一个字符串 s,返回 只含 单一字母 的子串个数 。
示例 1:
输入: s = “aaaba”
输出: 8
解释: 只含单一字母的子串分别是 “aaa”, “aa”, “a”, “b”。
“aaa” 出现 1 次。
“aa” 出现 2 次。
“a” 出现 4 次。
“b” 出现 1 次。
所以答案是 1 + 2 + 4 + 1 = 8。
LeetCode 1180. 统计只含单一字母的子串
提示:
一、解题关键词
二、解题报告
1.思路分析
1、相邻&相同的字母全排列之后,累加相同字母排列和
2、遇到不相同的字母 count 从 1 开始计算 并进行累加
2.时间复杂度
3.代码示例
class Solution {
public int countLetters(String s) {
int ans = 0;
int count = 1;
for(int i = 1; i< s.length();++i ){
if(s.charAt(i) == s.charAt(i - 1)){
count++;
}else{
ans += count * (count + 1)/ 2;
count = 1;
}
}
ans += count * (count + 1) / 2;
return ans;
}
}
2.知识点