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;
}
}