一【题目类别】
二【题目难度】
三【题目编号】
四【题目描述】
- 给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如"USA"。
- 单词中所有字母都不是大写,比如"leetcode"。
- 如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。
五【题目示例】
- 示例 1:
输入: “USA”
输出: True
- 示例 2:
输入: “FlaG”
输出: False
六【题目提示】
- 注意: 输入是由大写和小写拉丁字母组成的非空单词。
七【解题思路】
- 边界值判空返回false
- 统计大写字母和小写字母出现的次数
- 如果字符串全是大写或者全是小写返回ture,如果字符串首位为大写其余为小写返回true
- 其余情况均不满足题目要求,返回false
八【时间频度】
九【代码实现】
- Java语言版
package String;
public class p520_DetectCapital {
public static void main(String[] args) {
String word = "Leetcode";
boolean res = detectCapitalUse(word);
if (res) {
System.out.println("符合全是大写,或者全是小写,或者首字母大写其余小写的规则");
} else {
System.out.println("不符合规则");
}
}
public static boolean detectCapitalUse(String word) {
char[] wds = word.toCharArray();
int upWord = 0;
int lowWord = 0;
for (int i = 0; i < wds.length; i++) {
if (wds[i] - 'a' < 0) {
upWord++;
} else {
lowWord++;
}
}
if (upWord == wds.length || lowWord == wds.length || (upWord == 1 && wds[0] < 'a')) {
return true;
} else {
return false;
}
}
}
- C语言版
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
bool detectCapitalUse(char * word)
{
int upWord = 0;
int lowWord = 0;
for (int i = 0; i < strlen(word); i++)
{
if (word[i] - 'a' < 0)
{
upWord++;
}
else
{
lowWord++;
}
}
if (upWord == strlen(word) || lowWord == strlen(word) || (upWord == 1 && word[0] < 'a'))
{
return true;
}
else
{
return false;
}
}
int main(void)
{
}
十【提交结果】
- Java语言版

- C语言版
