Problem Link

Description


An alphabetical continuous string is a string consisting of consecutive letters in the alphabet. In other words, it is any substring of the string "abcdefghijklmnopqrstuvwxyz".

  • For example, "abc" is an alphabetical continuous string, while "acb" and "za" are not.

Given a string s consisting of lowercase letters only, return the length of the longest alphabetical continuous substring.

 

Example 1:

Input: s = "abacaba"
Output: 2
Explanation: There are 4 distinct continuous substrings: "a", "b", "c" and "ab".
"ab" is the longest continuous substring.

Example 2:

Input: s = "abcde"
Output: 5
Explanation: "abcde" is the longest continuous substring.

 

Constraints:

  • 1 <= s.length <= 105
  • s consists of only English lowercase letters.

Solution


Python3

class Solution:
    def longestContinuousSubstring(self, s: str) -> int:
        N = len(s)
        res = length = 1
        
        def f(x):
            return ord(x) - ord("a")
        
        prev = f(s[0])
        
        for i in range(1, N):
            curr = f(s[i])
            
            if prev + 1 == curr:
                length += 1
                res = max(res, length)
            else:
                length = 1
            
            prev = curr
        
        return res