function isValid(s) { let hash = {}; for (let i = 0; i < s.length; i++) { let key = s[i]; if (hash[key]) { hash[key]++; } else { hash[key] = 1; } } let frequencies = []; for (let key in hash) { frequencies.push(hash[key]); } frequencies.sort(); let first = frequencies[0]; let second = frequencies[1]; let secondLast = frequencies[frequencies.length - 2]; let last = frequencies[frequencies.length - 1]; // If first and last are same, then all frequencies are same if (first == last) { return "YES"; } // If first is 1, and all other characters have 1 frequency if (first == 1 && second == last) { return "YES"; } // If all are same and last character has just 1 extra count if (first == second && second == secondLast && secondLast == last - 1) { return "YES"; } // else NO return "NO"; }
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)