Java 中的相等计数子串数量

2025年1月6日 | 3 分钟阅读

给定一个整数 count 和一个由小写英文字母组成的字符串 'str'。此问题的目标是找到“等计数子字符串”。当每个不同的字母在子字符串中恰好出现 count 次时,该子字符串就被称为等计数。本质上,任务是识别任何子字符串,其中 count 等于该子字符串中每个唯一字母的频率。接下来,我们必须返回这些子字符串的总数。

示例 1

输入

字符串 str = "aaa"

int count = 3

输出

等计数子字符串的数量是 1

解释

在给定的字符串中,子字符串“aaa”是从索引 0 开始到索引 2 结束的字符串。“aaa”是从索引 0 到索引 2 的子字符串。子字符串中只有“a”字母。

示例 2

输入

字符串 str = "xxxyzyyzz"

int count = 3

输出

等计数子字符串的数量是 3

解释

在给定的字符串中,子字符串“xxx”是从索引 0 开始到索引 2 结束的字符串。子字符串中“x”字母恰好出现三次。“yzyyzz”是位于索引 3 到索引 8 之间的子字符串。子字符串中“y”和“z”字母恰好出现三次。“xxxyzyyzz”是从索引 0 到索引 8 的子字符串。子字符串中“x”、“y”和“z”字母恰好出现三次。

示例 3

输入

字符串 str = "pqrs"

int count = 3

输出

等计数子字符串的数量是 0

解释

在给定的字符串中,每个字母在字符串 'str' 中的出现次数都少于 count 次。因此,返回 0,因为 s 中的任何子字符串都不是等计数子字符串。

方法

实施

文件名: NumberEqualSubstrings.java

输出

The number of equal counts of sub strings is : 1

复杂度分析

上述代码的时间复杂度为 O(N),空间复杂度为 O(1)。