leetcode1446. 连续字符(每日一题)


力扣链接

题目描述

给你一个字符串 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)

рекомендация

отblog.csdn.net/qq_43478625/article/details/121646167