在Python中查找最长连续增加子串的长度的程序

假设我们有一个小写字符串 s。这包含英文字母以及“?” 象征。对于每个“?” 我们必须删除它或用任何小写字母替换它。我们必须找到以字母“a”开头的最长连续递增子串的长度。

所以,如果输入像 s = "vta???defke",那么输出将是 6,因为我们可以把 s 变成 "vtabcdefke" 并且 "abcdef" 是最长的连续递增子串,这也是从“一种”。

示例

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

def solve(s):

   maxlen = length = qmarks = 0

   for c in s:

      if c == "?":

         qmarks += 1

      else:

         idx = ord(c) - ord("a")

         length = idx + 1 if length <= idx <= length + qmarks or idx <= qmarks else 0

         qmarks = 0

      maxlen = max(maxlen, min(length + qmarks, 26))

   return maxlen

s = "vta???defke"

print(solve(s))

输入

"vta???defke"
输出结果
6

以上是 在Python中查找最长连续增加子串的长度的程序 的全部内容, 来源链接: utcz.com/z/349064.html

回到顶部