思想:
- 哈希表:看到题首先想到的是用字典解决。但是发现可以直接遍历字母表,从Z开始找,看是否大小写都存在,存在直接返回就行。
运行时间超过99.9%
2. 位运算:我们可以用两个整数 mask1 和 mask2 分别记录字符串 s 中出现的小写字母和大写字母,其中 mask1 的第 i
位表示第 i 个小写字母是否出现,而 mask2 的第 i 位表示第 i 个大写字母是否出现。
然后我们将 mask1 和 mask2 进行与运算,得到的结果 mask 的第 i 位表示第 i 个字母的大小写是否同时出现。
接下来只要获取 mask 的二进制表示中最高位的 1 的位置,将其转换为对应的大写字母即可。如果所有二进制位都不为 1,说明不存在大小写同时出现的字母,返回空字符串。
作者:ylb
链接:https://leetcode.cn/problems/greatest-english-letter-in-upper-and-lower-case/solutions/2077636/by-lcbin-zbg0/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
代码:
1 | class Solution: |
1 | class Solution { |
1 | class Solution: |