给你一个字符串 s
,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串 s
的 能量。
示例 1:
输入:s = "leetcode"
输出:2
解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。
示例 2:
输入:s = "abbcccddddeeeeedcba"
输出:5
解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。
提示:
1 <= s.length <= 500
s
只包含小写英文字母。
Related Topics
👍 102👎 0
双指针,简单步骤分析理解
双指针,简单题
- 右指针往后一直找到和当前字符不一样的那个字符,得到了当前字符的连续长度
- 对比已有的
max
长度值,取较大的那个 - 左指针直接移动到右指针当前位置,也就是下一个新字符的连续区间起点,再继续移动右指针,重复步骤(1)
- 直到到达字符串结束位置
代码
class Solution {
public int maxPower(String s) {
if (s.length() == 0) return 0;
int max = 1;
int left = 0;
int right = 0;
while (left < s.length()){
while (++right < s.length() && s.charAt(right) == s.charAt(right-1)){}
max = Math.max(max,right - left);
left = right;
}
return max;
}
}
发表评论