Thu. Dec 12th, 2024

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
class Solution {
    public int maxPower(String s) {
        if(s.length() == 1) return 1;
        Map<String,Integer> freqMap = new HashMap<String,Integer>();
        TreeSet<Integer> freqTree = new TreeSet<Integer>();
        int counter = 1;
        for(int i=0;i<s.length()-1;i++){
            if(s.charAt(i) == s.charAt(i+1)){
                counter++;
            }else{
               counter = 1;
            }
            if(freqMap.containsKey(s.charAt(i)+"")){
                if(freqMap.get(s.charAt(i)+"") < counter)  
                    freqMap.put(s.charAt(i)+"",counter);
            }else{
                freqMap.put(s.charAt(i)+"",counter); 
            }
                //System.out.println(freqMap);
        }
        for(int i:freqMap.values()){
            freqTree.add(i);
        }
        //System.out.println(freqTree);
        return (freqTree.size() > 0)?freqTree.last():0;
    }
}