058.最后一个单词的长度

题目

给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:
输入:s = "Hello World"
输出:5

示例 2:
输入:s = " "
输出:0

提示:

1 <= s.length <= 10^4 s 仅有英文字母和空格 ’ ’ 组成

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/length-of-last-word 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

JS实现

参考代码1:

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function (s) {
  //获取最后一个字符的下标
  let endIndex = s.length - 1;
  //如果下标大于等于0,并且最后一个字符等于空字符串
  while (endIndex >= 0 && s[endIndex] == " ") {
    endIndex--;
  }
  if (endIndex < 0) {
    return 0;
  }
  let startIndex = endIndex;
  while (startIndex >= 0 && s[startIndex] != " ") {
    startIndex--;
  }
  return endIndex - startIndex;
};

参考代码2:

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function (s) {
  s = s && s.trim();
  const words = s.split(' ');
  const len = words.length;
  return words[len - 1] ? words[len - 1].length : 0;
};