题目:
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如 "USA" 。
单词中所有字母都不是大写,比如 "leetcode" 。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
提示:
1 <= word.length <= 100
-
word
由小写和大写英文字母组成
代码:
class Solution {
public boolean detectCapitalUse(String word) {
int i,j=0,k=0;
char a=word.charAt(0);
char b;
if(a>='a'&&a<='z'){
for(i=1;i<word.length();i++){
b=word.charAt(i);
if(b>='A'&&b<='Z'){
return false;
}
}
return true;
}else{
for(i=1;i<word.length();i++){
b=word.charAt(i);
if(b>='a'&&b<='z') j++;
if(b>='A'&&b<='Z') k++;
}
if(j==word.length()-1||k==word.length()-1){
return true;
}else{
return false;
}
}
}
}
总结:打卡第十八天,今天的题目是简单,但是我还是思索了片刻,采用的是分类的方法,将整个情况分为两类(开头字母是否为小写字母),然后再匹配剩余单词是否全为大写或小写字母即可,然后运行结果证明我的方法空间和时间复杂度都有99%以上。