首页 > 其他分享 >力扣2023.1.27---2309. 兼具大小写的最好英文字母

力扣2023.1.27---2309. 兼具大小写的最好英文字母

时间:2023-01-27 13:33:45浏览次数:57  
标签:2309 27 英文字母 res0 res1 大写 --- 大小写 小写

给你一个由英文字母组成的字符串 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 由小写和大写英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/greatest-english-letter-in-upper-and-lower-case
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

遇到数据之间有规律的,都可以利用这些规律来降低时间复杂度。

这种题一般都可以用辅助空间来降低一层复杂度。一般可以直接利用数组来达到和哈希表相同的效果,但哈希表由于构造比较费时间,所以数组更优。(更好的是使用位运算,但我目前还没研究位运算,先用数组,以后想玩了再优化)。

主要思路还是遍历加模拟。

代码就这样吧,不去试着优化优化了。

代码如下:

class Solution {     public String greatestLetter(String s) {         // 存储大小写均出现的大写字母。         char res0 = 0;         // 存储大小写均出现的小写字母。         char res1 = 0;         // 判断大小写是否均出现,boolean型数据默认为FALSE。         boolean[][] arr = new boolean[26][2];         for (char a : s.toCharArray()) {             if ('A' <= a && a <= 'Z') {                 arr[a - 'A'][0] = true;                 // 大小写均出现且比之前就存储的在字母表中更靠后。                 if (arr[a - 'A'][0] && arr[a - 'A'][1] && (a > res0)) {                     res0 = a;                 }             } else if ('a' <= a && a <= 'z') {                 arr[a - 'a'][1] = true;                 // 大小写均出现且比之前就存储的在字母表中更靠后。                 if (arr[a - 'a'][0] && arr[a - 'a'][1] && (a > res1)) {                     res1 = a;                 }             }         }         if (res0 == 0 && res1 == 0) {             return "";         }         return (char)(Math.max(res0 - 'A', res1 - 'a') + 'A') + "";     } }

运行结果如下:

运行结果

 

标签:2309,27,英文字母,res0,res1,大写,---,大小写,小写
From: https://www.cnblogs.com/allWu/p/17068836.html

相关文章

  • 动画-2023
    一、2022年绘画总结练习(1)2022年报了个画室学人体结构,画了2个月,效果还不错,学完明白画画不是简单的报个网课就能学好的,而是自己不断的勤奋练习(2)蓝铅笔买了ipad绘画教程与......
  • A Template for C-Language Library Creation - 一个创建C语言运行库的模板
    ATemplateforC-LanguageLibraryCreation一个创建C语言运行库的模板WesupposethelibrarywewanttocreateislibElec.1)Createafolderinyourdisk,suchas......
  • 【算法训练营day27】LeetCode39. 组合总和 LeetCode40. 组合总和II LeetCode131. 分割
    LeetCode39.组合总和题目链接:39.组合总和独上高楼,望尽天涯题目不难,注意start_index参数的使用。classSolution{private:vector<vector<int>>result;ve......
  • 基于GitLab+Jenkin-CICD方案实践
    前言笔录于2022-官网:https://about.gitlab.com/参考文档:https://docs.gitlab.com/ee/ci/清华源:清华大学开源软件镜像站|TsinghuaOpenSourceMirror版本介绍......
  • 1.27 vp Codeforces Round #845 (Div. 2) and ByteRace 2023
    A-EverybodyLikesGoodArrays!题意(构造)给出序列a,需要使a中元素以相邻元素奇偶性不同排列,你可以进行若干操作:将一对相邻奇偶性相同的元素相乘问最少需要多少次操作......
  • vs2015和cocos2d-x-3.17.2 开发环境搭建
    vs2015和cocos2d-x-3.17.2开发环境搭建 cocos2d-x当前最新稳定版本是3.17.2,需要使用vs2015来构建。首先是安装vs2015。选择安装下面的vs版本:cn_visual_studio_community_2......
  • Python原型链污染变体(prototype-pollution-in-python)
    简介前些时间看了idekctf2022*的taskmanager,出题人参考了另一位博主Python原型链污染变体的博文,于是打算写一篇文章简单学习下这种攻击方式和题目中的一些解题技巧等内......
  • bash: redis-server: 未找到命令...
    2023-01-27今天使用xshell连接linux中的redis数据库时,出现的该问题“ bash:redis-server:未找到命令...”使用redis-server/root/myredis/redis.conf命令,连接数......
  • Linux PM QoS framework(3)_per-device PM QoS
    1.前言per-devicePMQoS是针对指定设备的QoSframework,背后的思考如下:1)resume_latency在RuntimePM的框架下,当device的引用计数减为0的时候,RPM会suspend该device。不......
  • Android Files.delete()使用try-catch依旧出错
    提问: 我想做一个供自己使用的文件编辑器,其中有一个删除指定文件的功能(第105行开始):  我使用了catch语句抓住错误,可是当找不到指定文件时仍旧闪退。具体详情:  ......