在Python中按顺序查找所有元音的最长子串的程序

假设我们有一个只有英文元音的字符串 s,我们必须找到 s 的最长美丽子串的长度。如果我们找不到这样的子字符串,则返回 0。如果字符串满足以下条件,则称其为美丽的字符串 -

  • 5 个元音中的每一个都必须至少出现一次。

  • 字母必须按字母顺序排序

因此,如果输入类似于 s = "aaioaaaaeiiouuooaauu",那么输出将是 10,因为子字符串是美丽的 "aaaaeiiouu"。

示例

让我们看看以下实现以获得更好的理解 -

def solve(s):

   vowels = ['a', 'e', 'i', 'o', 'u']

   l, r, longest = 0, 0, 0

   while (l < len(s)):

      valid = True

      for vowel in vowels:

         valid &= (r < len(s) and s[r] == vowel)

         while (r < len(s) and s[r] == vowel):

            r += 1

      if (valid):

         longest = max(longest, r - l)

      l = r

   return longest

s = "aaioaaaaeiiouuooaauu"

print(solve(s))

输入

"aaioaaaaeiiouuooaauu"
输出结果
10

以上是 在Python中按顺序查找所有元音的最长子串的程序 的全部内容, 来源链接: utcz.com/z/335471.html

回到顶部