leetcode1876. 长度为三且各字符不同的子字符串
Posted 2021dragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode1876. 长度为三且各字符不同的子字符串相关的知识,希望对你有一定的参考价值。
LeetCode系列文章
文章目录
一、题目描述
如果一个字符串不含有任何重复字符,我们称这个字符串为好字符串。
给你一个字符串 s s s,请你返回 s s s 中长度为3的好子字符串的数量。
注意,如果相同的好子字符串出现多次,每一次都应该被记入答案之中
(子字符串是一个字符串中连续的字符序列)
二、示例
输入: s = “xyzzaz”
输出: 1
解释: 总共有4个长度为3的子字符串:“xyz”,“yzz”,“zza” 和 “zaz”。唯一的长度为3的好子字符串是 “xyz”。
三、主体思路
根据题意,我们需要遍历字符串 s s s 当中的子字符串,统计好子字符串的个数。而我们只需要统计长度为3的好子字符串的个数,因此我们在遍历字符串 s s s 时,可以想象有一个长度为3的滑动窗口在遍历这个字符串,我们要做的就是统计该窗口中出现的好子字符串的个数即可。
图示如下:
四、代码实现
需要注意的是,代码当中的变量 i i i 和 l e n len len 的类型不能定义为 size_t 类型,否则当 l e n − 2 len-2 len−2 小于0时会被识别成一个很大的数,让本不应该进入for循环的程序进入了for循环当中,进而导致程序运行错误。
代码如下:
以上是关于leetcode1876. 长度为三且各字符不同的子字符串的主要内容,如果未能解决你的问题,请参考以下文章
力扣1812,LCP17,2011,1876,520,709,1704,1844,1805题解