1446. 连续字符

2022-07-27  本文已影响0人  水中的蓝天

1446. 连续字符

给你一个字符串 s ,字符串的「能量」定义为:只包含一种字符的最长非空子字符串的长度。
请你返回字符串 s 的 能量

示例.png

/**
 思路:
 定义两个变量来记录字符出现的次数
 count:某一个字符出现的次数
 max:当前某一个字符出现的最大次数
时间复杂度:O(n)
空间复杂度:O(1)
 */
class Solution {

    public int maxPower(String s) {
      
      //0.字符串转字符数组
      char[] cs = s.toCharArray();
      
      //1.定义需要的数据结构
      int length = cs.length;
      int max = 1;
      int count = 1;

      //2.遍历字符数组寻找最大连续字符
      for(int i = 1;i < length;i++) {
          /**
           如果当前字符与前一个字符相同 count = count + 1
           如果当前字符与前一个字符不相同 count = 1
           */
           count += (cs[i]==cs[i-1])?1:(-count+1);
           max = Math.max(count,max);
      }
      //3.返回结果
      return max;

    }

}

上一篇 下一篇

猜你喜欢

热点阅读