给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串 s 的 能量。
示例 1:
输入:s = "leetcode"
输出:2
解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。
示例 2:
输入:s = "abbcccddddeeeeedcba"
输出:5
解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。
提示:
1 <= s.length <= 500
s 只包含小写英文字母。
分组循环,找最长连续的那组:
cpp
class Solution {
public:
int maxPower(string s) {
int ans = 0;
int n = s.size();
int i = 0;
while (i < n) {
int start = i;
// 计数连续组的长度
while (i < n && s[i] == s[start]) {
++i;
}
ans = max(ans, i - start);
}
return ans;
}
};
如果s的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。