列表

详情


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”。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int lengthOfLastWord(string s) { } };

python3 解法, 执行用时: 52 ms, 内存消耗: 16 MB, 提交时间: 2023-09-27 15:08:38

class Solution:
    def lengthOfLastWord(self, s: str) -> int:
        n = len(s)
        ans = 0
        # 倒序遍历
        for i in range(n-1, -1, -1):
            if s[i] != " ":
                ans += 1
            else:
                if ans:
                    return ans
        return ans

golang 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2023-09-27 15:08:10

func lengthOfLastWord(s string) (ans int) {
    index := len(s) - 1
    for s[index] == ' ' {
        index--
    }
    for index >= 0 && s[index] != ' ' {
        ans++
        index--
    }
    return
}

cpp 解法, 执行用时: 0 ms, 内存消耗: 6.8 MB, 提交时间: 2023-09-27 15:07:54

class Solution {
public:
    int lengthOfLastWord(string s) {
        int index = s.size() - 1;

        while (s[index] == ' ') {
            index--;
        }
        int wordLength = 0;
        while (index >= 0 && s[index] != ' ') {
            wordLength++;
            index--;
        }

        return wordLength;
    }
};

java 解法, 执行用时: 0 ms, 内存消耗: 39.7 MB, 提交时间: 2023-09-27 15:07:39

class Solution {
    public int lengthOfLastWord(String s) {
        int index = s.length() - 1;
        while (s.charAt(index) == ' ') {
            index--;
        }
        int wordLength = 0;
        while (index >= 0 && s.charAt(index) != ' ') {
            wordLength++;
            index--;
        }
        return wordLength;
    }
}

javascript 解法, 执行用时: 44 ms, 内存消耗: 40.9 MB, 提交时间: 2023-09-27 15:07:17

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function(s) {
    let end = s.length - 1;
    while(end >= 0 && s[end] == ' ') end--;
    if(end < 0) return 0;
    let start = end;
    while(start >= 0 && s[start] != ' ') start--;
    return end - start;
};

java 解法, 执行用时: 0 ms, 内存消耗: 39.6 MB, 提交时间: 2023-09-27 15:07:05

class Solution {
    public int lengthOfLastWord(String s) {
        int end = s.length() - 1;
        while(end >= 0 && s.charAt(end) == ' ') end--;
        if(end < 0) return 0;
        int start = end;
        while(start >= 0 && s.charAt(start) != ' ') start--;
        return end - start;
    }
}

python3 解法, 执行用时: 48 ms, 内存消耗: 13.5 MB, 提交时间: 2020-11-02 23:33:02

class Solution:
    def lengthOfLastWord(self, s: str) -> int:
        return len(re.split('\s+', s.strip())[-1])

上一题