class Solution {
public:
int maxPower(string s) {
int cnt = 0;
int res = 0;
for(int i=0; i<s.size()-1; i++){
if(s[i] == s[i+1]){
cnt++;
res = max(res, cnt);
}
else {
cnt = 0;
}
}
return res + 1;
}
};
遍历字符串,根据字符串的相邻两个字符是否相等,让cnt自加1,若发现字符串中前一个字符和后一个字符不相等,则将cnt归零重新计数。
取最大的cnt,最开始让s[i]!=s[i+1]时取max,但发现对于连续相等字符串如"cccc"则不会进入到else中,因而每次cnt的值变化的时候都把cnt和res的最大值赋予res,保证res永远是最大的。
注意!初始化问题,c++中变量定义之初最好初始化,笔者最开始没有初始化导致输出的值每次都不一样。