栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaScript算法33- 兼具大小写的最好英文字母(leetCode:2309简单)周赛

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript算法33- 兼具大小写的最好英文字母(leetCode:2309简单)周赛

2309. 兼具大小写的最好英文字母

一、题目

给你一个由英文字母组成的字符串 s ,请你找出并返回 s 中的 最好 英文字母。返回的字母必须为大写形式。如果不存在满足条件的字母,则返回一个空字符串。

最好 英文字母的大写和小写形式必须 都 在 s 中出现。

英文字母 b 比另一个英文字母 a 更好 的前提是:英文字母表中,b 在 a 之 后 出现。

示例

输入:s = "lEeTcOdE"
输出:"E"
解释:
字母 'E' 是唯一一个大写和小写形式都出现的字母。

提示

  • 1 <= s.length <= 1000
  • s 由小写和大写英文字母组成
二、题解 方法1(遍历字符串s)
  • 初始化最好字母为 ''
  • 遍历字符串s,寻找大写字母
  • 若大写字母对应的小写字母存在,且当前大写字母大于最好字母,就将最好字母替换为当前的大写字母
  • 直至遍历完所有字符
var greatestLetter = function (s) {
     let bestAlpha = ''
     for (let i = 0; i < s.length; i++) {
         if (s[i] >= 'A' && s[i] <= 'Z') {
             if (s.match(String.fromCharCode( s[i].charCodeAt() + 32)) && (!bestAlpha || bestAlpha < s[i])) {
                 bestAlpha = s[i]
             }
        }
     }
    return bestAlpha
};

方法2(倒序遍历字母表)
  • 倒序遍历字母表
  • 若当前字母的大小写均存在,则返回当前字母
  • 若遍历完,都没有符合条件的字母,则返回''
var greatestLetter = function (s) {
    for (let i = 25; i >= 0; i--) {
        if (s.match(String.fromCharCode(i + 'a'.charCodeAt())) &&
            s.match(String.fromCharCode(i + 'A'.charCodeAt()))) {
            return String.fromCharCode(i + 'A'.charCodeAt());
        }
    }
    return '';
};

三、知识点 字母的Unicode编码
  • A ~ Z :65 ~ 90
  • a ~ z :97 ~ 122
  • 大写字母的Unicode编码+ 32 = 小写字母的Unicode编码
字母和Unicode的转换

Unicode编码 → 字符:String.fromCharCode(num)
字母 → Unicode编码 str.charCodeAt()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/986731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号