使用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