题目描述
大致思路:
定义start与end 用来记录最后一个字符串的起始位置与结束位置。
让从末尾开始遍历字符串, 遇到空字符串后 continue, 当遇到第一个不为空的即为结束为止, 此时给end赋值, 当遇到第二个空字符时, 记录该位置前一个, 即为start。
代码如下:
function lengthOfLastWord(s: string): number {
//一些基本校验
if ((s.length === 0) || (s.length === 1 && s[0] === ' ')) {
return 0;
}
if (s.length === 1) {
return 1;
}
//定义 start与 end
let start = 0;
let end = 0;
for (let i = s.length - 1; i >= 0; --i) {
//循环找到第一个不为空的字符
if (s[i] === ' ' && end === 0) {
continue;
}
//找到后赋值给end
if (end === 0) {
end = i;
}
//找到第二个为空的字符, 将其前一个位置赋值给start, 结束循环
if (end !== 0 && s[i] === ' ') {
start = i + 1;
break;
}
}
return end - start + 1;
}