LeetCode 1446.连续字符 - 详解

给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。

请你返回字符串 s 的 能量。

示例 1:

输入:s = “leetcode”
输出:2
解释:子字符串 “ee” 长度为 2 ,只涵盖字符 ‘e’ 。
示例 2:

输入:s = “abbcccddddeeeeedcba”
输出:5
解释:子字符串 “eeeee” 长度为 5 ,只包含字符 ‘e’ 。

提示:

1 <= s.length <= 500
s 只囊括小写英文字母。

分组循环,找最长连续的那组:

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)。

posted @ 2025-09-17 19:04  wzzkaifa  阅读(6)  评论(0)    收藏  举报