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.
Companies: TikTok
Related Topics:
String
Similar Questions:
- Longest Consecutive Sequence (Medium)
- Arithmetic Slices (Medium)
- Max Consecutive Ones (Easy)
- Maximum Number of Vowels in a Substring of Given Length (Medium)
- Number of Zero-Filled Subarrays (Medium)
// OJ: https://leetcode.com/problems/length-of-the-longest-alphabetical-continuous-substring
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
public:
int longestContinuousSubstring(string s) {
int ans = 0, N = s.size();
for (int i = 0; i < N; ) {
int start = i++;
while (i < N && s[i] == s[i - 1] + 1) ++i;
ans = max(ans, i - start);
}
return ans;
}
};