原文链接: https://leetcode-cn.com/problems/consecutive-characters
英文原文
The power of the string is the maximum length of a non-empty substring that contains only one unique character.
Given a string s
, return the power of s
.
Example 1:
Input: s = "leetcode" Output: 2 Explanation: The substring "ee" is of length 2 with the character 'e' only.
Example 2:
Input: s = "abbcccddddeeeeedcba" Output: 5 Explanation: The substring "eeeee" is of length 5 with the character 'e' only.
Example 3:
Input: s = "triplepillooooow" Output: 5
Example 4:
Input: s = "hooraaaaaaaaaaay" Output: 11
Example 5:
Input: s = "tourist" Output: 1
Constraints:
1 <= s.length <= 500
s
consists of only lowercase English letters.
中文题目
给你一个字符串 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 n = s.length(), ans = 1;
for (int i = 0; i < n; ) {
int j = i;
while (j < n && s.charAt(j) == s.charAt(i)) j++;
ans = Math.max(ans, j - i);
i = j;
}
return ans;
}
}
- 时间复杂度:$O(n)$
- 空间复杂度:$O(1)$
其他「双指针」相关内容
题太简单?不如来学习热乎的 图论搜索专题の灵活运用多种搜索方式 Ⅱ 🤣
或是考虑加练如下「双指针」内容 🍭🍭🍭
注:以上目录整理来自 wiki,任何形式的转载引用请保留出处。
最后
如果有帮助到你,请给题解点个赞和收藏,让更多的人看到 ~ (“▔□▔)/
也欢迎你 关注我 和 加入我们的「组队打卡」小群 ,提供写「证明」&「思路」的高质量题解。
所有题解已经加入 刷题指南,欢迎 star 哦 ~
统计信息
通过次数 | 提交次数 | AC比率 |
---|---|---|
47277 | 77136 | 61.3% |
提交历史
提交时间 | 提交结果 | 执行时间 | 内存消耗 | 语言 |
---|