您的位置:首页 > 财经 > 产业 > 华为企业邮箱_电子商务网站设计原理名词解释_百度手机助手官网下载_seo高级优化方法

华为企业邮箱_电子商务网站设计原理名词解释_百度手机助手官网下载_seo高级优化方法

2024/10/6 6:32:39 来源:https://blog.csdn.net/codename_cys/article/details/142637529  浏览:    关键词:华为企业邮箱_电子商务网站设计原理名词解释_百度手机助手官网下载_seo高级优化方法
华为企业邮箱_电子商务网站设计原理名词解释_百度手机助手官网下载_seo高级优化方法
  • Leetcode 3306. Count of Substrings Containing Every Vowel and K Consonants II
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3306. Count of Substrings Containing Every Vowel and K Consonants II

1. 解题思路

这一题的话思路上就是一个滑动窗口,考察没一个点作为起始位置时,满足同时包含5个元音字符以及恰好 k k k个辅音字符的第一个位置,然后从该位置到其下一个辅音字符之间的任意一个位置都可以构成一个满足条件的substring。

因此,我们只需要控制这样一个滑动窗口并提前计算出一下每一个位置对应的下一个辅音字符出现的位置即可。

2. 代码实现

给出python代码实现如下:

class Solution:def countOfSubstrings(self, word: str, k: int) -> int:n = len(word)next_consonants = [n for _ in range(n)]idx = nfor i in range(n-1, -1, -1):next_consonants[i] = idxif word[i] not in "aeiou":idx = ii, j = 0, 0cnt = defaultdict(int)ans = 0while j < n:while j < n and (any(cnt[ch] <= 0 for ch in "aeiou") or cnt["c"] < k):if word[j] in "aeiou":cnt[word[j]] += 1else:cnt["c"] += 1j += 1while all(cnt[ch] > 0 for ch in "aeiou") and cnt["c"] >= k:if cnt["c"] == k and all(cnt[ch] > 0 for ch in "aeiou"):ans += (next_consonants[j-1] - (j-1))if word[i] in "aeiou":cnt[word[i]] -= 1else:cnt["c"] -= 1i += 1return ans

提交代码评测得到:耗时6407ms,占用内存25MB。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com