力扣题库之最后一个单词长度
-
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符
/* 给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。
如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 */
var lengthOfLastWord = function(str) {
//如果字符串长度为0 或者只有一个空字符返回0
if (str.length === 1 && str[0] === " " || str.length === 0) {
return 0
}
//将所有字母转为小写
str = str.toLowerCase()
//将字符使用空格分隔,并防御数组
var arr = str.split(" ")
//遍历数组,找到最后一个只有字母组成的字符串
for (var i = arr.length - 1; i >= 0; i--) {
//如果字符串内都是字母那么该单词就是最后一个单词
//小写字母ASCLL 为 97 ~ 122
for (var j = 0; j < arr[i].length; j++) {
if (arr[i].charCodeAt(j) > 122 || arr[i].charCodeAt(j) < 97) {
break
}
//当j为最后一位时,表示所有位都是字符,可以返回单词长度了
if(j === arr[i].length - 1){
var length = arr[i].length
return length
}
}
}
//如果不存在单词,返回0
return 0
};