使用Python查找最长好的子串的程序

假设我们有一个字符串 s。我们必须找到 s 的最长好的子串。对于字符串 s,如果对于 s 中的每个字母,它都以大写和小写形式出现,则可以说它很好。如果有多个这样的子串,则返回最早出现的子串。

因此,如果输入类似于 s = "ZbybBbz",那么输出将是 "bBb",因为它包含小写和大写的 B。

为了解决这个问题,我们将按照以下步骤操作 -

  • cur_max:= -1

  • res:= 空字符串

  • 对于范围 0 到 s 大小的 i,请执行

    • c := s[j]

    • 如果 c 是小写,则

    • 如果 c 是大写的,那么

    • 如果上与下相同,则

    • 将 c 添加到下层

    • 将 c 添加到大写但在将其转换为小写之前

    • cur_max := ji

    • res := s的子串[从索引i到j+1]

    • 如果 ji > cur_max,则

    • 将 c 添加到大写但在将其转换为小写之前

    • 将 c 添加到下层

    • c := s[i]

    • 上:=一个新的集合

    • 下 := 一个新的集合

    • 如果 c 是小写,则

    • 如果 c 是大写的,那么

    • 对于在 i+1 到 s 大小的范围内的 j,请执行

    • 返回资源

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

    示例

    def solve(s):

       cur_max= -1

       res=""

       for i in range(len(s)):

          c = s[i]

          upper = set()

          lower = set()

          if c.islower():

             lower.add(c)

          if c.isupper():

             upper.add(c.lower())

          for j in range(i+1,len(s)):

             c = s[j]

             if c.islower():

                lower.add(c)

             if c.isupper():

                upper.add(c.lower())

             if upper == lower:

                if j-i>cur_max:

                   cur_max = j-i

                   res = s[i:j+1]

       return res

    s = "ZbybBbz"

    print(solve(s))

    输入

    "ZbybBbz"
    输出结果
    bBb

    以上是 使用Python查找最长好的子串的程序 的全部内容, 来源链接: utcz.com/z/327522.html

    回到顶部