天天看点

力扣题库之最后一个单词长度

力扣题库之最后一个单词长度

  • 给定一个仅包含大小写字母和空格 ’ ’ 的字符串 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	
			};