持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情
检测大写字母
题目解析
题目难度:简单
题目素材解析
本道题,提供了一个素材:
- 字符串word。
word字符串长度在1到100之间,并且只存在大写字母和小写字母两种字符。
我的解读
我对此题的解读,就是逻辑问题,利用排除法来解决特殊情况,如果一个特殊情况都不存在的话,就是正确的。
特殊情况如下:
-
第一位是大写,后续可以小写,但是一旦是小写,就必须都是小写,一旦出现大写就返回false。
-
第一位是小写,后续就出现了大写,就直接返回false即可。
解题思路
下面我们就来一步一步的来讲述一下代码逻辑。
第一步,先声明出一个标识变量。
第二步,然后判断字符串第一位是大写还是小写。通过if来判断,并且给标识变量以不同的值。
第三步,开始进入循环,循环体内判断上面解读的两种情况,通过这两种情况来排除掉错误情况。
第四步,如果有幸完成循环,那么就代表着这个数字就是正确的。
下面我们就来看一下代码编写情况。
代码
本次代码执行如下:
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.detectCapitalUse("ABD"));
}
public boolean detectCapitalUse(String word) {
int f = 0;
if(Character.isUpperCase(word.charAt(0))){
//大写
f = 1;
}else{
//小写
f = -1;
}
for (int i = 1; i < word.length(); i++) {
if(f == -1 && Character.isUpperCase(word.charAt(i))){
return false;
}
if(f == 1 && i != 1 && Character.isLowerCase(word.charAt(i))){
return false;
}
if(Character.isUpperCase(word.charAt(i))){
f = 1;
}else{
f = -1;
}
}
return true;
}
}
执行结果
虽然这次的执行结果不怎么样,但是我这个思路还是很容易理解的。欢迎加入专栏,一起来刷题。