文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。
相关文章:
- LeetCode:55. Jump Game(跳远比赛)
- Leetcode:300. Longest Increasing Subsequence(最大增长序列)
- LeetCode:560. Subarray Sum Equals K(找出数组中连续子串和等于k)
文章目录:
题目描述:
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: "USA"
输出: True
示例 2:
输入: "FlaG"
输出: False
来源:力扣(LeetCode)
java实现方式1:
/**
* 检测大小写字符串
*
* @param word 字符串
* @return 布尔值
*/
public boolean detectCapitalUse(String word) {
if (word.length() <= 1) {
return true;
}
boolean firstCharFlag = word.charAt(0) < 97;
boolean secondCharFlag = word.charAt(1) < 97;
if (!firstCharFlag && secondCharFlag) {
return false;
}
for (int i = 2; i < word.length(); i++) {
boolean charFlag = word.charAt(i) < 97;
if (!secondCharFlag && charFlag) {
return false;
}
if (secondCharFlag && !charFlag) {
return false;
}
}
return true;
}
时间复杂度:O(n)
空间复杂度:O(1)
Python实现方式1:
def detect_capital_use(self, word: str) -> bool:
'''
检查大小写
Args:
word: 单词
Returns:
布尔值
'''
if len(word) <= 1:
return True
first_char_flag = ord(word[0]) < 97
second_char_flag = ord(word[1]) < 97
if not first_char_flag and second_char_flag:
return False
for i in range(2, len(word)):
char_flag = ord(word[i]) < 97
if not second_char_flag and char_flag:
return False
if second_char_flag and not char_flag:
return False
return True
时间复杂度:O(n)
空间复杂度:O(1)