2414. 最长的字母序连续子字符串的长度
题目描述:
字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 "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
由小写英文字母组成
解题分析及思路:
方法:方法
思路:
遍历字符串,如果当前字符与前一个字符的差值等于1,则计数器count
加一,否则重置计数器为1
取遍历过程中count
的最大值即为最长的字母序连续子字符串的长度
func longestContinuousSubstring(s string) (ans int) {
var count int = 1
ans = count
for i := 1; i < len(s); i++ {
if int(s[i])-int(s[i-1]) == 1 {
count++
} else {
count = 1
}
ans = max(ans, count)
}
return ans
}
复杂度:
- 时间复杂度:O(n)
- 空间复杂度:O(1)
执行结果:
- 执行耗时:11 ms,击败了45.00% 的Go用户
- 内存消耗:6.3 MB,击败了12.50% 的Go用户
Tags :
通过次数 36K 提交次数 52.7K 通过率 68.4%