长度为 K 的子串中元音数量最多的子串

2024年8月28日 | 阅读 8 分钟

给定一个长度为 n 的字符串;问题是找到一个长度为 k 的子串,该子串包含最多的元音字母,并且时间复杂度为线性。

子串可以从字符串中的任何位置开始,元音字母的顺序无关紧要。如果两个子串具有相同的元音字母计数,则返回第一个子串。

示例 1

示例 2

示例 3

约束

  • 输入将包含一个字符串和一个整数 k。
  • 输入中的所有字母都将是小写字母。
  • k 的长度将在 1 到 len(string) 之间

Python 程序,用于查找具有最多元音字母的子串

程序可以总结如下:

  1. 计算长度为 k 的子串 s[0:k] 的元音字母数量:
  2. 检查计数是否大于零,这表明子串包含一些元音字母。
  3. 将子串存储为 answer = s[0:k],并将 max_vowel_count 设置为 count。
  4. 初始化两个变量,i = 0 和 j = k。
  5. 检查 s[i] 是否为元音字母。如果是,则 count -= 1
  6. 检查 s[j] 是否为元音字母。如果是,则 count += 1
  7. 检查 count 是否大于 max_vowel_count。如果是,意味着 s[i] 是辅音,s[j] 是元音。
  8. 更新 answer = s[i+1, j+1] 和 max_vowel_count = count
  9. 重复步骤 5 到 8,直到所有字母都被处理完毕。
  10. 返回 answer。

输出

Enter a string: agfshuekjiylsk
Enter the length of the substring: 3
Output: hue

Enter a string: kwytpqjz
Enter the length of the substring: 5
Output: No Substring Found!

时间复杂度 - O(n):这是因为程序会遍历给定的字符串,而 n 代表字符串的大小。

空间复杂度 - O(n):不需要额外的空间。

C++ 程序,用于查找具有最多元音字母的子串

输出

Enter a string: deriikoiuaplo
Enter the length of the substring: 5
Output: iikoi

C 程序,用于查找具有最多元音字母的子串

输出

Enter a string: usipaotutpsythsuiaonhuaisre
Enter the length of the substring: 7
Output: uiaonhu

Java 程序,用于查找具有最多元音字母的子串

输出

Enter a string: aoabdiewbiieazodgagji
Enter the length of the substring: 5
Output: biiea