Given a word, you need to judge whether the usage of capitals in it is right or not.
We define the usage of capitals in a word to be right when one of the following cases holds:
All letters in this word are capitals, like “USA”.
All letters in this word are not capitals, like “leetcode”.
Only the first letter in this word is capital if it has more than one letter, like “Google”.
Otherwise, we define that this word doesn’t use capitals in a right way.
Example 1:
Input: “USA”
Output: True
Example 2:
Input: “FlaG”
Output: False
题意:
检测单词是否符合标准,首字母大写,或者全大写,或者全小写就符合,其他不符合
思路:
先将单词转换成小写,对比两个单词中不一样的字母,用ArrayList记录索引值,根据索引判断是否符合标准
知识点:
- char数组声明有[]
- char数组的长度是length,没有()
- ArrayList初始化:
ArrayList<Integer> index = new ArrayList<Integer>();
,注意构造函数也要有数据类型 - ArrayList的实际长度是
size()
- ArrayList得到索引值是用
get()
方法
class Solution {
public boolean detectCapitalUse(String word) {
char[] word2 = word.toLowerCase().toCharArray();
int len = word2.length;//无()
ArrayList<Integer> index = new ArrayList<Integer>();
for(int i=0;i<len;i++){
if(word2[i] != word.charAt(i)){
index.add(i);
}
}
int lenIndex = index.size();
if((lenIndex == 0)||((lenIndex==1)&&(index.get(0)==0))||(lenIndex == len)){
return true;
}else{
return false;
}
}
}