Formatted question description: https://leetcode.ca/all/1446.html

1446. Consecutive Characters (Easy)

Given a string s, the power of the string is the maximum length of a non-empty substring that contains only one unique character.

Return the power of the string.

 

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 contains only lowercase English letters.

Related Topics:
String

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/consecutive-characters/

// Time: O(N)
// Space: O(1)
class Solution {
public:
    int maxPower(string s) {
        int ans = 1, cnt = 1;
        for (int i = 1; i < s.size(); ++i) {
            if (s[i] == s[i - 1]) ans = max(ans, ++cnt);
            else cnt = 1;
        }
        return ans;
    }
};

Or

// OJ: https://leetcode.com/problems/consecutive-characters/

// Time: O(N)
// Space: O(1)
class Solution {
public:
    int maxPower(string s) {
        int start = 0, ans = 0;
        for (int i = 0; i < s.size(); ++i) {
            if (s[i] == s[start]) ans = max(ans, i - start + 1);
            else start = i;
        }
        return ans;
    }
};

Java

  • class Solution {
        public int maxPower(String s) {
            if (s == null || s.length() == 0)
                return 0;
            int length = s.length();
            int maxPower = 1;
            int power = 0;
            char prevC = 'A';
            for (int i = 0; i < length; i++) {
                char c = s.charAt(i);
                if (c == prevC) {
                    power++;
                    maxPower = Math.max(maxPower, power);
                } else {
                    power = 1;
                    prevC = c;
                }
            }
            return maxPower;
        }
    }
    
  • // OJ: https://leetcode.com/problems/consecutive-characters/
    // Time: O(N)
    // Space: O(1)
    class Solution {
    public:
        int maxPower(string s) {
            int ans = 1, cnt = 1;
            for (int i = 1; i < s.size(); ++i) {
                if (s[i] == s[i - 1]) ans = max(ans, ++cnt);
                else cnt = 1;
            }
            return ans;
        }
    };
    
  • print("Todo!")
    

All Problems

All Solutions