力扣链接
题目描述
给你一个字符串 s
,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串的能量。
示例 1:
输入:s = "leetcode"
输出:2
解释:子字符串 "ee" 长度为 2 ,只包含字符 'e' 。
示例 2:
输入:s = "abbcccddddeeeeedcba"
输出:5
解释:子字符串 "eeeee" 长度为 5 ,只包含字符 'e' 。
示例 3:
输入:s = "triplepillooooow"
输出:5
示例 4:
输入:s = "hooraaaaaaaaaaay"
输出:11
示例 5:
输入:s = "tourist"
输出:1
提示:
1 <= s.length <= 500
s
只包含小写英文字母。
解题思路
- 一次遍历
代码
class Solution {
public int maxPower(String s) {
int max = 1;
int energy = 1;
int len = s.length();
for (int i = 1; i < len; i++) {
if (s.charAt(i) == s.charAt(i - 1)) {
energy++;
max = Math.max(energy, max);
} else {
energy = 1;
}
}
return max;
}
}
复杂度分析
- 时间复杂度: O(n)
- 空间复杂度: O(1)