Skip to content
On this page

58-最后一个单词的长度

标签:字符串

题目信息

题目地址最后一个单词的长度

题目内容:

javascript
给你一个字符串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”。

提示:
    1 <= s.length <= 104
    s 仅有英文字母和空格 ' ' 组成
    s 中至少存在一个单词

题解

解法一

思路:

使用正则表达式解决,可以拆分为4部分 /^(其他单词和空格)(最后一个单词前面的空格)(最后一个单词)(最后一个单词后面的空格)$/

代码实现:

javascript
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function(s) {
    const lastWorld = /^.*?\s*([a-zA-Z]+)\s*$/.exec(s)[1]
    return lastWorld.length
};

解法二

思路:

将字符串按照' '分割为数组,然后从最后一个元素开始取,如果当前元素不是'',就返回该字符串的长度,否则继续向前取

代码实现:

javascript
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function(s) {
    const arr = s.split(' ')
    let len = arr.length
    while(len-- >= 0) {
        const curStr = arr[len]
        if(curStr !== '') {
            return curStr.length
        }
    }
};