Consecutive Characters

easy string run length one pass

Problem

The power of a string is the maximum length of a non-empty substring that contains only one unique character. Given a string s of lowercase letters, return the power of s — that is, the length of its longest run of identical characters.

Inputs = "abbcccddddeeeeedcba"
Output5
The substring "eeeee" is length 5 with the character 'e' only, the longest single-character run.

def maxPower(s):
    best = 1                       # longest run seen so far
    cur = 1                        # length of the current run
    for i in range(1, len(s)):
        if s[i] == s[i - 1]:       # same char extends the run
            cur += 1
            best = max(best, cur)
        else:                      # different char resets the run
            cur = 1
    return best
function maxPower(s) {
  let best = 1;                    // longest run seen so far
  let cur = 1;                     // length of the current run
  for (let i = 1; i < s.length; i++) {
    if (s[i] === s[i - 1]) {       // same char extends the run
      cur += 1;
      best = Math.max(best, cur);
    } else {                       // different char resets the run
      cur = 1;
    }
  }
  return best;
}
int maxPower(String s) {
    int best = 1;                  // longest run seen so far
    int cur = 1;                   // length of the current run
    for (int i = 1; i < s.length(); i++) {
        if (s.charAt(i) == s.charAt(i - 1)) { // same char extends
            cur += 1;
            best = Math.max(best, cur);
        } else {                   // different char resets the run
            cur = 1;
        }
    }
    return best;
}
int maxPower(string s) {
    int best = 1;                  // longest run seen so far
    int cur = 1;                   // length of the current run
    for (int i = 1; i < (int)s.size(); i++) {
        if (s[i] == s[i - 1]) {    // same char extends the run
            cur += 1;
            best = max(best, cur);
        } else {                   // different char resets the run
            cur = 1;
        }
    }
    return best;
}
Time: O(n) Space: O(1)