当前位置:首页|资讯

LeetCode 1358. 包含所有三种字符的子字符串数目

作者:您是打尖儿还是住店呢发布时间:2024-09-05

给你一个字符串 s ,它只包含三种字符 a, b 和 c 。

 

请你返回 a,b 和 c 都 至少 出现过一次的子字符串数目。

 

 

 

示例 1:

 

输入:s = "abcabc"

输出:10

解释:包含 a,b 和 c 各至少一次的子字符串为 "abc", "abca", "abcab", "abcabc", "bca", "bcab", "bcabc", "cab", "cabc" 和 "abc" (相同字符串算多次)。

示例 2:

 

输入:s = "aaacb"

输出:3

解释:包含 a,b 和 c 各至少一次的子字符串为 "aaacb", "aacb" 和 "acb" 。

示例 3:

 

输入:s = "abc"

输出:1

 

 

提示:

 

3 <= s.length <= 5 x 10^4

s 只包含字符 a,b 和 c 。

双指针,关键是怎么双指针,先枚举右端点,然后去判断左端点,只要左端点不同,那么以i或者i之后的所有字符串都会是符合要求的,这时候cnt+=n-i即可。我之前就没想到可以这么做的。专项练习了双指针会理解的更多一点。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1