参考资料
练习题 icon lost
交流讨论
笔记
img lost

[题目描述]
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。
如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。

(题目说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。)

示例 1:

输入: "Hello World"
输出: 5

[个人见解]
根据题意有如下思路:
首先该字符串包含空格和大小写字母,而我们需要找出最后一个不包含空格的单词,然后求出该单词的长度即可。但是存在一种情况,就是说字符串以空格结尾的话,我们需要先去除空格在查找。这里介绍两种思路:

思路一:
1.所以第一步需要将给的字符串调用trim()来去除前后的空格。
2.然后将首尾去除空格的字符串调用lastIndexOf(" ")就可以找出最后一个单词前的空格的索引,这里假设为index。
3.接着通过substring(index+1)就可以截取到最后一个单词代表的字符串。
4.最后将截取的单词字符串调用length()方法就可以得到最后一个单词的长度。
具体代码见[Java Solution One]

思路二:
1.第一步还是同思路一 一样,需要将给的字符串调用trim()来去除前后的空格。
2.去除以后可以用给定的字符串调用split(" ")来获取到所有的单词所构成的一个字符串数组。
3.这个时候只需要获取字符串数组的最后一个元素,然后调用length()即可。
具体代码见[Java Solution Two]

[Java Solution One]

public int lengthOfLastWord(String s) {
        if (s.equals("") || s.replace(" ","").equals("")) {
            return 0;
        }
        
        int index = s.trim().lastIndexOf(" ");
        return s.trim().substring(index + 1).length();
    }

[Java Solution Two]

public int lengthOfLastWord(String s) {
        if (s.equals("") || s.replace(" ","").equals("")) {
            return 0;
        }
   
        String[] strings = s.trim().split(" ");
        return strings[strings.length - 1].length();
    }

希望本文可以对正在阅读的你有所帮助,在学术思想上擦出火花的可以评论区交流~
感谢阅读~

资料来源 LeetCode 58 最后一个单词的长度
博客作者 Oliver_YuGe
前往答题
我的笔记