class Solution {
public:
string greatestLetter(string s) {
}
};
2309. 兼具大小写的最好英文字母
给你一个由英文字母组成的字符串 s
,请你找出并返回 s
中的 最好 英文字母。返回的字母必须为大写形式。如果不存在满足条件的字母,则返回一个空字符串。
最好 英文字母的大写和小写形式必须 都 在 s
中出现。
英文字母 b
比另一个英文字母 a
更好 的前提是:英文字母表中,b
在 a
之 后 出现。
示例 1:
输入:s = "lEeTcOdE" 输出:"E" 解释: 字母 'E' 是唯一一个大写和小写形式都出现的字母。
示例 2:
输入:s = "arRAzFif" 输出:"R" 解释: 字母 'R' 是大写和小写形式都出现的最好英文字母。 注意 'A' 和 'F' 的大写和小写形式也都出现了,但是 'R' 比 'F' 和 'A' 更好。
示例 3:
输入:s = "AbCdEfGhIjK" 输出:"" 解释: 不存在大写和小写形式都出现的字母。
提示:
1 <= s.length <= 1000
s
由小写和大写英文字母组成原站题解
javascript 解法, 执行用时: 64 ms, 内存消耗: 42.1 MB, 提交时间: 2023-01-27 08:35:30
/** * @param {string} s * @return {string} */ var greatestLetter = function(s) { const ht = new Set(); for (let i = 0; i < s.length; i++) { const c = s[i]; ht.add(c); } for (let i = 25; i >= 0; i--) { if (ht.has(String.fromCharCode('a'.charCodeAt() + i)) && ht.has(String.fromCharCode('A'.charCodeAt() + i))) { return String.fromCharCode('A'.charCodeAt() + i); } } return ""; };
golang 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2023-01-27 08:35:09
func greatestLetter(s string) string { set := map[rune]bool{} for _, c := range s { set[c] = true } for i := 'Z'; i >= 'A'; i-- { if set[i] && set[unicode.ToLower(i)] { return string(i) } } return "" }
python3 解法, 执行用时: 28 ms, 内存消耗: 15.1 MB, 提交时间: 2022-06-20 10:26:26
class Solution: def greatestLetter(self, s: str) -> str: for i in range(ord('Z'), ord('A')-1, -1): if chr(i) in s and chr(i+32) in s: return chr(i) return ''