思路

遍历字符串,判断下一个字符和当前字符是否连续,连续计数加1,不连续就重置计算为1.

解题方法

1.初始化变量。

1
2
3
int max=1;//最大连续字符数量
char[] chars = s.toCharArray();
int num=1;//连续字符出现数量

2.遍历字符串,判断下一个字符和当前字符是否连续,连续计数加1,不连续就重置计算为1.

1
2
3
4
5
6
7
8
for (int i = 0; i < chars.length-1; i++) {
if (chars[i]+1!=chars[i+1]){// 不连续 重置数量
num=1;
}else { //字符连续 计数加1
num++;
//计算最大值
max=max>num?max:num;
}

复杂度

  • 时间复杂度: O(n)

  • 空间复杂度: O(n)

Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class Solution {
public   int longestContinuousSubstring(String s) {
int max=1;//最大连续字符数量
char[] chars = s.toCharArray();
int num=1;//连续字符出现数量
// 遍历到n-1个字符
for (int i = 0; i < chars.length-1; i++) {
if (chars[i]+1!=chars[i+1]){// 不连续 重置数量
num=1;
}else { //字符连续 计数加1
num++;
//计算最大值
max=max>num?max:num;
}
}
return max;
}

执行效果

org-key

org-note