2414-最长的字母序连续子字符串的长度

Raphael Liu Lv10

字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 "abcdefghijklmnopqrstuvwxyz"
的任意子字符串都是 字母序连续字符串

  • 例如,"abc" 是一个字母序连续字符串,而 "acb""za" 不是。

给你一个仅由小写英文字母组成的字符串 s ,返回其 最长 的 字母序连续子字符串 的长度。

示例 1:

**输入:** s = "abacaba"
**输出:** 2
**解释:** 共有 4 个不同的字母序连续子字符串 "a"、"b"、"c" 和 "ab" 。
"ab" 是最长的字母序连续子字符串。

示例 2:

**输入:** s = "abcde"
**输出:** 5
**解释:** "abcde" 是最长的字母序连续子字符串。

提示:

  • 1 <= s.length <= 105
  • s 由小写英文字母组成

视频讲解 已出炉,欢迎点赞三连,在评论区分享你对这场周赛的看法~

[sol1-Python3]
1
2
3
4
5
6
7
8
class Solution:
def longestContinuousSubstring(self, s: str) -> int:
ans = start = 0
for i in range(1, len(s)):
if ord(s[i]) != ord(s[i - 1]) + 1:
ans = max(ans, i - start)
start = i # 新起点
return max(ans, len(s) - start)
[sol1-Go]
1
2
3
4
5
6
7
8
9
10
11
12
func longestContinuousSubstring(s string) (ans int) {
start := 0
for i := 1; i < len(s); i++ {
if s[i] != s[i-1]+1 {
ans = max(ans, i-start)
start = i // 新起点
}
}
return max(ans, len(s)-start)
}

func max(a, b int) int { if b > a { return b }; return a }

复杂度分析

  • 时间复杂度:O(n),其中 n 为 s 的长度。
  • 空间复杂度:O(1),仅用到若干变量。
 Comments
On this page
2414-最长的字母序连续子字符串的长度