Back to all solutions

#2309 - Greatest English Letter in Upper and Lower Case

Problem Description

Given a string of English letters s, return the greatest English letter which occurs as both a lowercase and uppercase letter in s. The returned letter should be in uppercase. If no such letter exists, return an empty string.

An English letter b is greater than another letter a if b appears after a in the English alphabet.

Solution

/**
 * @param {string} s
 * @return {string}
 */
var greatestLetter = function(s) {
  const lowerSet = new Set();
  const upperSet = new Set();

  for (const char of s) {
    if (char >= 'a' && char <= 'z') {
      lowerSet.add(char);
    } else {
      upperSet.add(char.toLowerCase());
    }
  }

  let maxLetter = '';
  for (const char of lowerSet) {
    if (upperSet.has(char) && char > maxLetter) {
      maxLetter = char;
    }
  }

  return maxLetter.toUpperCase();
};