1820. 寻找字母
描述
给定一个字符串str,返回字符串中字母顺序最大的而且同时在字符串中出现大写和小写的字母。 如果不存在这样的字母,返回‘~‘。
请返回大写字母|str|<=1000
样例 1:
输入:
"aAbBcD"
输出:
'B'
解释:
因为c和D没有大小写同时出现,A和B都有大小写,但是B比A大,所以返回B。
样例 2:
输入:
"looGVSSPbR"
输出:
'~'
原题传送门
文章目录
1820. 寻找字母描述样例 1:样例 2:
题解最后说两句声明
题解
public class Solution {
public char findLetter(String str
) {
boolean[][] counter
= new boolean[26][2];
int maxValidIndex
= -1;
for (int i
= 0; i
< str
.length(); i
++) {
char c
= str
.charAt(i
);
int ci
;
int ti
;
if (Character
.isUpperCase(c
)) {
ci
= c
- 65;
ti
= 0;
} else {
ci
= c
- 97;
ti
= 1;
}
counter
[ci
][ti
] = true;
ti
^= 1;
if (counter
[ci
][ti
]) {
if (ci
> maxValidIndex
) {
maxValidIndex
= ci
;
}
}
}
return maxValidIndex
>= 0 ? (char) ('A' + maxValidIndex
) : '~';
}
}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由二当家的白帽子博客原创,转载请注明来源,谢谢~