这一题比较简单,要最后一个单词的长度,如果直接说要第一个单词的长度,那就直接遍历就好了,现在要最后一个单词的长度,就反向遍历。
var lengthOfLastWord = function (s) {
let index = s.length - 1
// 去除后面的空格
while (s[index] === ' ') index--
let wordLength = 0
// 边界控制 + 空格判断
while (index >= 0 && s[index] !== ' ') {
index--
wordLength++
}
return wordLength
};
麻烦版
再次写这一题,得出一个比较"难懂"的代码
var lengthOfLastWord = function (s) {
let n = s.length;
let flag = false;
let res = 0;
for (i = n - 1; i >= 0; --i) {
// 前面两个if来排除末尾的空格
if (i === n - 1 && s[i] === " ") flag = true;
if (flag && s[i] === " ") continue;
// 重置flag
if (s[i] !== " ") flag = false;
// 计数字母的长度
if (!flag && s[i] !== " ") {
res++;
} else {
break;
}
}
return res;
};