***、题目链接
Day6:Leetcod 1876. 长度为三且各字符不同的子字符串
一、题目
1、题目描述
如果一个字符串不含有任何重复字符,我们称这个字符串为 好 字符串。
给你一个字符串s
,请你返回s
中长度为 3 的 好子字符串 的数量。
注意,如果相同的好子字符串出现多次,每一次都应该被记入答案之中。
子字符串 是一个字符串中连续的字符序列。
样例输入:"aababcabc"
;
样例输出:4
。
2、基础框架
- C++给出的代码框架如下:
class Solution {
public:
int countGoodSubstrings(string s) {
}
};
二、解题报告
1、思路分析
( 1 ) (1) (1) 判断相邻三个字母相同就行,相同就是好字符串,并计数。
2、时间复杂度
O ( n ) O(n) O(n) ,;
3、代码详解
class Solution {
public:
int countGoodSubstrings(string s) {
int n = s.size();
if(n < 3) return 0;
int ret = 0;
for(int i = 0; i + 2 < n; ++i){
if(s[i] != s[i + 1] && s[i + 1] != s[i + 2] && s[i] != s[i + 2]){
ret++;
}
}
return ret;
}
};
三、写在最后
emmm,不知道该怎么说。