2309. Generate English Letter in Upper and Lower Case

2309. Generate English Letter in Upper and Lower Case #

题目 #

  • 给你一个由英文字母组成的字符串 s ,请你找出并返回 s 中的 最好 英文字母。返回的字母必须为大写形式。如果不存在满足条件的字母,则返回一个空字符串。
  • 最好 英文字母的大写和小写形式必须 s 中出现。
  • 英文字母 b 比另一个英文字母 a 更好 的前提是:英文字母表中,ba 出现。

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public String greatestLetter(String s) {
        String ans = "";
        Set<Character> set = new HashSet<>();
        for (int i = 0; i < s.length(); i++) set.add(s.charAt(i));
        for (int i = s.length()-1; i>=0; i--) {
            char ch = s.charAt(i);
            if (set.contains(Character.toUpperCase(ch)) && set.contains(Character.toLowerCase(ch))) {
                if (ans.equals("") || ans.charAt(0) < Character.toUpperCase(ch)) ans = String.valueOf(Character.toUpperCase(ch));
            }
        }
        return ans;
    }
}

致谢 #

力扣官方题解