1446. 连续字符
2022-07-27 本文已影响0人
水中的蓝天
给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串 s 的 能量

/**
思路:
定义两个变量来记录字符出现的次数
count:某一个字符出现的次数
max:当前某一个字符出现的最大次数
时间复杂度:O(n)
空间复杂度:O(1)
*/
class Solution {
public int maxPower(String s) {
//0.字符串转字符数组
char[] cs = s.toCharArray();
//1.定义需要的数据结构
int length = cs.length;
int max = 1;
int count = 1;
//2.遍历字符数组寻找最大连续字符
for(int i = 1;i < length;i++) {
/**
如果当前字符与前一个字符相同 count = count + 1
如果当前字符与前一个字符不相同 count = 1
*/
count += (cs[i]==cs[i-1])?1:(-count+1);
max = Math.max(count,max);
}
//3.返回结果
return max;
}
}