🌈🌈😄😄
欢迎来到茶色岛独家岛屿,本期将为大家揭晓所有蚂蚁掉下来前的最后一刻,做好准备了么,那么开始吧
🌲🌲🐴🐴
目录
一、题目名称
6181. 最长的字母序连续子字符串的长度
二、题目要求
字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说,字符串 "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
由小写英文字母组成
五、解决办法
利用s.charAt(i) - 'a' == s.charAt(i - 1) - 'a' + 1实现前一个字母和本字母间隔相差1,如果满足,则current加1,如果不满足,则计入ans中,最后比较满足字符串最大值。
六、代码实现
class Solution {
public int longestContinuousSubstring(String s) {
int ans = 1;
int current = 1;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) - 'a' == s.charAt(i - 1) - 'a' + 1) {
current++;
} else {
ans = Math.max(ans, current);
current = 1;
}
}
ans = Math.max(ans, current);
return ans ;
}
}