1446. 连续字符 : 简单双指针模拟题

简介: 1446. 连续字符 : 简单双指针模拟题

网络异常,图片无法展示
|

题目描述



这是 LeetCode 上的 1446. 连续字符 ,难度为 简单


Tag : 「双指针」、「模拟」


给你一个字符串 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 <= 5001<=s.length<=500
  • ss 只包含小写英文字母。


双指针



根据题意,使用「双指针」进行扫描计数即可。


代码:


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(n)
  • 空间复杂度:O(1)O(1)


最后



这是我们「刷穿 LeetCode」系列文章的第 No.1446 篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完。


在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。


为了方便各位同学能够电脑上进行调试和提交代码,我建立了相关的仓库:github.com/SharingSour…


在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解。

相关文章
|
5月前
|
存储 编译器 C语言
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
112 0
|
5月前
|
存储 C++
使用字符指针变量和字符数组的比较
使用字符指针变量和字符数组的比较
43 0
|
5月前
|
C语言
C语言----字符数组&&指针
C语言----字符数组&&指针
40 0
|
12月前
|
存储 编译器 C语言
C语言之字符指针
C语言之字符指针
|
5月前
|
存储 C语言
字符指针变量与字符数组的比较
字符指针变量与字符数组的比较
39 3
|
5月前
|
存储 C语言
字符指针作为函数参数
字符指针作为函数参数
49 2
|
5月前
DAY-2 | 哈希表、指针与区间划分:字符种数统计问题
```markdown ## 题干 [牛客网链接](https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50) ## 题解 1. **查表法(哈希表)**:利用数组标记出现过的 ASCII 值小于127的字符,首次出现计数,重复则忽略。 2. **指针与区间划分(回头法)**:遍历字符串,对每个字符检查其前所有字符是否重复,重复则不计数。 ## 方法总结 - 哈希表在去重问题中非常实用,可多做相关练习。 - 使用`continue`时注意避免死循环,确保循环变量会改变。 - 多回顾此类问题以巩固理解。 ```
39 2
|
5月前
|
存储 C语言
C语言中的字符指针技术详解
C语言中的字符指针技术详解
43 0
|
5月前
|
存储 人工智能
字符指针变量和字符数组注意事项(区别)
字符指针变量和字符数组注意事项(区别)
29 0
|
5月前
|
安全 C语言 C++
字符指针做函数参数
字符指针做函数参数
26 1