給你一個字符串 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)。