【字符串-简单】1446. 连续字符(CPP,Python两种方法)(后期补充)

题目
给你一个字符串 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 只包含小写英文字母。
【代码】
【CPP】
执行用时:
0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:
6.8 MB, 在所有 C++ 提交中击败了84.25%的用户

class Solution {
public:
    int maxPower(string s) {
        s+="*";
        char first=s[0];
        int maxlen=0,loopcnt=0;
        for(auto x:s){
            if(x==first)
                loopcnt++;
            else{
                maxlen=max(maxlen,loopcnt);
                first=x;
                loopcnt=1;
            }
        }
        return maxlen;
    }
};

【Python】
执行用时:
52 ms, 在所有 Python3 提交中击败了67.10%的用户
内存消耗:
14.9 MB, 在所有 Python3 提交中击败了7.94%的用户

class Solution:
    def maxPower(self, s: str) -> int:
        s+="*"
        maxlen=0
        loopcnt=0
        first=s[0]
        for x in s:
            if x==first:
                loopcnt+=1
            else:
                maxlen=max(maxlen,loopcnt)
                loopcnt=1
                first=x
        return maxlen

【Python-groupby】
优点:简洁
缺点:时间复杂度高

class Solution:
    def maxPower(self, s: str) -> int:
        return max((len(list(group)) for _, group in groupby(s)))

【相关题型】
1437. 是否所有 1 都至少相隔 k 个元素题目
【数组-简单】485. 最大连续1的个数(CPP、Python-groupby)题目
【参考】
优秀题解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值