原题地址:最后一个单词的长度
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指由字母组成,但不包含任何空格的字符串。
示例:
输入: "Hello World"
输出: 5
从后往前扫描
题目要求找到最后一个单词的长度,只需要先去除字符串右边的空格,然后从后往前扫描,找到第一个空格,它到字符串尾部的距离就是最后一个单词的长度。
具体的实现代码如下:
/**
* @param {string} s
* @return {number}
*/
const lengthOfLastWord1 = function(s) {
s = s.trimEnd(); // 去除右边的空格
// 从后往前扫描
for (let i = s.length - 1; i >= 0; i --) {
// 找到第一个空格
if (s[i] === ' ') {
// 返回空格到尾部的距离
return s.length - i - 1;
}
}
// 没有找到空格,说明没有单词或只有一个单词,直接返回字符串的长度的即可
return s.length;
};
测试:
let start = new Date();
const test = lengthOfLastWord1;
console.log(test("Hello World")); // 5
console.log(new Date().getTime() - start.getTime()); // 9
时间复杂度: 一次遍历,时间复杂度为$O(N)$
空间复杂度: 常数级额外空间,空间复杂度为$O(1)$
本文由 李海平 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Aug 17,2019