520-检测大写字母
Posted angelica-duhurica
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了520-检测大写字母相关的知识,希望对你有一定的参考价值。
520-检测大写字母
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如"USA"。
- 单词中所有字母都不是大写,比如"leetcode"。
- 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。
否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: "USA"
输出: True
示例 2:
输入: "FlaG"
输出: False
注意: 输入是由大写和小写拉丁字母组成的非空单词。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/detect-capital
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public boolean detectCapitalUse(String word) {
if(word.length() == 0 || word.length() == 1) {
return true;
}
char[] chars = word.toCharArray();
char start = chars[0];
char sec = chars[1];
boolean isBig;
if(isLowercase(start)) {
if(isUppercase(sec)) {
return false;
} else {
// 全部小写
isBig = false;
}
} else {
isBig = !isLowercase(sec);
}
for(int i = 2; i < word.length(); i++) {
if(!(isBig && isUppercase(chars[i])
|| !isBig && isLowercase(chars[i]))) {
return false;
}
}
return true;
}
// 调用API:Character.isUpperCase
private boolean isUppercase(char c) {
return c <= 'Z' && c >= 'A';
}
private boolean isLowercase(char c) {
return c <= 'z' && c >= 'a';
}
// 调用API,时间长,不推荐
// 将字符串全都转成大小写与原字符串比较。将字符串首字母大写,其余小写比较。
class Solution {
public boolean detectCapitalUse(String word) {
if (word.equals(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase())) {
return true;
}
return word.toUpperCase().equals(word) || word.toLowerCase().equals(word);
}
}
作者:wo-shi-a-miao-jiang
链接:https://leetcode-cn.com/problems/detect-capital/solution/jian-dan-ti-jiang-zi-fu-chuan-quan-du-zhuan-cheng-/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
// 符合两种情况即可:
// 1.如果第二个字母之后是大写字母,则前一个字母都为大写字母。
// 2.如果第三个字母之后是小写字母,则前一个字母为小写字母。
// 读取次数较多,不推荐
public class DetectCapitalUse {
public boolean detectCapitalUse(String word) {
char[] letters = word.toCharArray();
for (int i = 1; i < letters.length; i++) {
if (Character.isUpperCase(letters[i]) && Character.isLowerCase(letters[i-1])) {
return false;
}
if ( i != 1 && Character.isLowerCase(letters[i]) && Character.isUpperCase(letters[i-1])) {
return false;
}
}
return true;
}
}
作者:xiao-le-14
链接:https://leetcode-cn.com/problems/detect-capital/solution/javashi-xian-by-xiao-le-14/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
// 另一种思路:记录大写字母个数
class Solution {
public boolean detectCapitalUse(String word) {
char[] s = word.toCharArray();
char first = s[0];
int count = 0;
for (int i = 0; i < s.length ; i++) {
if (s[i] >= 65 && s[i] <= 90){
count++;
}
}
if (count == word.length()){
return true;
}
if (first >= 65 && first <= 90 && count == 1){
return true;
}
if (count == 0){
return true;
}
return false;
}
}
作者:cztchange
链接:https://leetcode-cn.com/problems/detect-capital/solution/chao-ji-jian-dan-de-jie-fa-java-by-cztchange/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以上是关于520-检测大写字母的主要内容,如果未能解决你的问题,请参考以下文章