两行代码搞定LeetCode最后一个单词的长度使用JavaScript解题|前端学算法

887 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情

有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来

这是LeetCode的第58题: 最后一个单词的长度 属于简单类型

最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

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

示例 1:

输入:s = "Hello World"

输出:5

解释:最后一个单词是“World”,长度为5。

示例 2:

输入:s = " fly me to the moon "

输出:4

解释:最后一个单词是“moon”,长度为4。

示例 3:

输入:s = "luffy is still joyboy"

输出:6

解释:最后一个单词是长度为6的“joyboy”。

解题思路

把字符串根据空格转化为数组,但是这个时候如果末尾不是单词而是空格的时候;最后一个单词就是空格,返回的长度就是0,所以在转化为数组之前,可以把字符串末尾的空格去掉

具体步骤如下:

  • 第一步:利用trim去掉空格,转化为数组
  • 第二步:获取最后一个单词的索引,返回最后一个单词的长度
var lengthOfLastWord = function(s) {
    let newS = s.trim().split(" ")
    return newS[newS.length-1].length
};

image.png

知识点

  • trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等。

trim() 方法不会改变原始字符串。

  • split(separator,howmany)方法用于把一个字符串分割成字符串数组。

第一个参数separator:必传,可以是字符串或正则表达式,从该参数指定的地方分割。

第二个参数howmany:可传可不传,该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。