「每日LeetCode」2021年2月7日

本文最后更新于:2023年3月19日 晚上

Lt1446. 连续字符

1446. 连续字符

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

1
2
3
输入:s = "leetcode"
输出:2
解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。

示例 2:

1
2
3
输入:s = "abbcccddddeeeeedcba"
输出:5
解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。

示例 3:

1
2
输入:s = "triplepillooooow"
输出:5

示例 4:

1
2
输入:s = "hooraaaaaaaaaaay"
输出:11

示例 5:

1
2
输入:s = "tourist"
输出:1

提示:

  • 1 <= s.length <= 500
  • s 只包含小写英文字母。

思路

max 记录最大连续出现的字符长度,count 为当前字符连续出现次数急速,cur 记录当前字符。如果相同,count 累加;如果不同 max 更新,cur 更新为新字符,count 重新置为 1。

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* @param {string} s
* @return {number}
*/
var maxPower = function (s) {
let max = 0;
let count = 1;
let cur = null;
for (const arr of s) {
if (arr === cur) count++;
else {
max = Math.max(count, max);
cur = arr;
count = 1;
}
}
return Math.max(count, max);
};