avatar

lookenghua

独立开发者

文章

17

分类

6

标签

5

发布4 年
322

连续字符

给你一个字符串 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
};

思路

先定义两个变量,maxcount,max用来记录目前最大的字符串,count则是用来记录当前重复字符串重复次数。然后依次变量字符串,比较当前值和下一个值是否相等,当然也可以比较和上一个值是否相等,如果相等则count+1,然后从count和max中取最大值重新赋值给max,如果不相等,则把count重新赋值为1,重新开始计算。

avatar

lookenghua

独立开发者

文章

17

分类

6

标签

5