/** 1446. Consecutive Characters https://leetcode.com/problems/consecutive-characters/ The power of the string is the maximum length of a non-empty substring that contains only one unique character. Given a string s, return the power of s. 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. 1 <= s.length <= 500 2. s consists of only lowercase English letters. */ pub struct Solution {} impl Solution { /* Solution: keep tracking each char and the maximum consecutive length, Time:O(n), Space:O(1) */ pub fn max_power(s: String) -> i32 { let (mut max, mut currentMax, mut lastChar) = (0, 0, '_'); for c in s.chars() { if (lastChar == c) { max += 1; currentMax = std::cmp::max(currentMax,max); } else { max = 1; } lastChar = c; } std::cmp::max(currentMax,1) } }