天天看點

力扣題庫之最後一個單詞長度

力扣題庫之最後一個單詞長度

  • 給定一個僅包含大小寫字母和空格 ’ ’ 的字元串 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	
			};