520. 检测大写字母(JavaScript)
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:
- 全部字母都是大写,比如"USA"。
- 单词中所有字母都不是大写,比如"leetcode"。
- 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。
否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: "USA" 输出: True
示例 2:
输入: "FlaG" 输出: False
思路:
创建一个数组,每个元素代表字符串的每个字符是否为大写,是大写就加个 1 ,是小写就加个 0 。然后对这个数组所有元素求和 sum。
全部字母都是大写:sum等于字符串大小;
全部字母都是小写:sum等于0;
首字母大写:sum等于1,且数组第一个元素为1。
/**
* @param {string} word
* @return {boolean}
*/
var detectCapitalUse = function(word) {
var arr_is_uppercase = [];
for (var char of word) {
if (char.charCodeAt() < 97) {
arr_is_uppercase.push(1); // 是大写就加入 1
} else {
arr_is_uppercase.push(0); // 是小写就加入 0
}
}
var uppercase_sum = arr_is_uppercase.reduce((x, y) => x + y);
if (uppercase_sum === 0 || // 全部为小写
uppercase_sum === word.length || // 全部为大写
(uppercase_sum === 1 && arr_is_uppercase[0] === 1)) { // 只有第一个为大写
return true;
} else {
return false;
}
};