LeetCode-最后一个单词的长度

题目

给你一个字符串 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) {
        String[] xx=s.split(" ");
        return xx[xx.length-1].length();
    }
}

官方题解

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;
    }
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/length-of-last-word/solutions/1008504/zui-hou-yi-ge-dan-ci-de-chang-du-by-leet-51ih/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

思考

看到官方题解,我还没反应过来,如果最后一个字母不是空格,那么while永远都不会被执行到,放到IDE中试了下,才明白官方题解的办法避免了最后几个字符是空格的情况,真是太巧妙了,看到官方题解真是挫败,觉着自己水平太差,永远无法追赶到的感觉。孙颖莎曾经说过,有一段时间她打球总是失利,当时就感觉不会打球了似的,低谷期的反思让她学会了“在失败中找问题”,这段经历为她在2021年世乒赛(最终获得女单冠军)的爆发奠定了基础。希望能向偶像看齐,继续加油!

posted @ 2025-05-29 09:28  尼兰  阅读(21)  评论(0)    收藏  举报