You are viewing a single comment's thread. Return to all comments →
Java
if (s.length() == 1) return "YES"; Map<Character, Integer> occMap = new HashMap<>(); for (int i = 0; i < s.length(); i++) { occMap.put(s.charAt(i), occMap.getOrDefault(s.charAt(i), 0) + 1); } Map<Integer, Integer> occFreqMap = new TreeMap<>(); for (int v : occMap.values()) { occFreqMap.put(v, occFreqMap.getOrDefault(v, 0) + 1); } if (occFreqMap.size() == 1) return "YES"; if (occFreqMap.size() > 2) return "NO"; int firstFreq = 0; int secondFreq = 0; for (int k : occFreqMap.keySet()) { if (firstFreq == 0) { firstFreq = k; continue; } secondFreq = k; } if (occFreqMap.getOrDefault(firstFreq, 0) == 1 && (firstFreq == secondFreq + 1 || firstFreq == 1)) { return "YES"; } if (occFreqMap.getOrDefault(secondFreq, 0) == 1 && (secondFreq == firstFreq + 1 || secondFreq == 1)) { return "YES"; } return "NO";
Seems like cookies are disabled on this browser, please enable them to open this website
Sherlock and the Valid String
You are viewing a single comment's thread. Return to all comments →
Java