思路
遍历字符串,判断下一个字符和当前字符是否连续,连续计数加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;
}
|
复杂度
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