## The challenge#

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 = "meetme"
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.

## The solution in Java code#

We could look at something like this:

``````class Solution {
public int maxPower(String s) {
int max = 1;

for(int i=0,j=1; j<s.length(); j++){

if(s.charAt(i)!=s.charAt(j)){
max = Math.max(j-i,max);
i=j;
}
}
return Math.max(j-i,max);

}
}
``````

But in cases like `eeeee`, we would expect a return of `5`, but would instead get `1` back.

So let’s revisit:

``````class Solution {
public int maxPower(String s) {
int max = 1;
int cnt = 1;
char prv = s.charAt( 0 );

for( int i = 1; i < s.length(); i++) {
if( prv == s.charAt( i ) ) {
max = Math.max( ++cnt, max );
continue;
}

prv = s.charAt( i );
cnt = 1;
}

return max;
}
}
``````

A possible third option would be to do something like this:

``````class Solution {
public int maxPower(String s) {

int max=1;

for(int i=1; i<s.length(); i++){

int count=1;
while(i < s.length() && s.charAt(i-1) == s.charAt(i)){
count++;
i++;
max=Math.max(count, max);
}
}

return max;
}
}
``````