连续字符
给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串的能量。
示例1:
输入:s = "leetcode"
输出:2
解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。
示例2:
输入:s = "abbcccddddeeeeedcba"
输出:5
解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。
示例3:
输入:s = "triplepillooooow"
输出:5
示例4:
输入:s = "hooraaaaaaaaaaay"
输出:11
示例4:
输入:s = "tourist"
输出:1
提示:
1 <= s.length <= 500
s
只包含小写英文字母
解答
/**
* @param {string} s
* @return {number}
*/
var maxPower = function(s) {
var max = 1, count = 1
for (var i = 0; i < s.length; i++) {
if (s[i] === s[i + 1]) {
count += 1
max = Math.max(max, count)
} else {
count = 1
}
}
return max
};
思路
先定义两个变量,max
和count
,max用来记录目前最大的字符串,count则是用来记录当前重复字符串重复次数。然后依次变量字符串,比较当前值和下一个值是否相等,当然也可以比较和上一个值是否相等,如果相等则count+1,然后从count和max中取最大值重新赋值给max,如果不相等,则把count重新赋值为1,重新开始计算。