2414. Length of the Longest Alphabetical Continuous Substring
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.
Solutions
Solution 1: Single Pass
We can traverse the string \(s\) and use a variable \(\textit{ans}\) to record the length of the longest lexicographically consecutive substring, and another variable \(\textit{cnt}\) to record the length of the current consecutive substring. Initially, \(\textit{ans} = \textit{cnt} = 1\).
Next, we start traversing the string \(s\) from the character at index \(1\). For each character \(s[i]\), if \(s[i] - s[i - 1] = 1\), it means the current character and the previous character are consecutive. In this case, \(\textit{cnt} = \textit{cnt} + 1\), and we update \(\textit{ans} = \max(\textit{ans}, \textit{cnt})\). Otherwise, it means the current character and the previous character are not consecutive, so \(\textit{cnt} = 1\).
Finally, we return \(\textit{ans}\).
The time complexity is \(O(n)\), where \(n\) is the length of the string \(s\). The space complexity is \(O(1)\).
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|