leetcode 算法题058 (简单014) 最后一个单词的长度
- 题目介绍
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
- 示例
输入: “Hello World”
输出: 5
- 解法一
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
let array = s.split(' ');
let i = array.length - 1;
let length = 0;
while(!length && i >= 0) {
length = array[i--].length;
}
return length;
};
执行用时 : 76 ms, 在所有 JavaScript 提交中击败了68.88%的用户
内存消耗 : 33.7 MB, 在所有 JavaScript 提交中击败了47.35%的用户
- 解法一
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
let array = s.split(' ');
let i = array.length - 1;
let length = 0;
while(!length && i >= 0) {
length = array[i--].length;
}
return length;
};
执行用时 : 76 ms, 在所有 JavaScript 提交中击败了68.88%的用户
内存消耗 : 33.7 MB, 在所有 JavaScript 提交中击败了47.35%的用户
- 解法一
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
let array = s.split(' ');
let i = array.length - 1;
let length = 0;
while(!length && i >= 0) {
length = array[i--].length;
}
return length;
};
执行用时 : 64 ms, 在所有 JavaScript 提交中击败了97.73%的用户
内存消耗 : 33.7 MB, 在所有 JavaScript 提交中击败了37.37%的用户
- 解法二
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
let length = 0, i = s.length - 1;
while(i >= 0) {
if(s[i] !== ' ') {
length++;
} else if(length) {
return length;
}
i--;
}
return length;
};
执行用时 : 76 ms, 在所有 JavaScript 提交中击败了68.88%的用户
内存消耗 : 33.7 MB, 在所有 JavaScript 提交中击败了47.35%的用户
- 解法三
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
let end = s.length - 1;
while(end >= 0 && s[end] === ' ') {
end--;
}
let start = end;
while(start >=0 && s[start] !== ' ') {
start--;
}
return end - start;
};
执行用时 : 76 ms, 在所有 JavaScript 提交中击败了68.88%的用户
内存消耗 : 33.8 MB, 在所有 JavaScript 提交中击败了29.94%的用户
- 解法四
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
return s.trim().length - s.trim().lastIndexOf(' ') - 1;
};
执行用时 : 76 ms, 在所有 JavaScript 提交中击败了68.88%的用户
内存消耗 : 33.8 MB, 在所有 JavaScript 提交中击败了25.05%的用户