即日起,我们从这个题目开始,把 leetcode 前 200 道题,还没有讲过的,全部讲一遍。
暂定的目标是一周 3-5 篇题解。希望大家支持!一起进步!奥利给!
01、题目示例
这是一道简单题,只需要普通的遍历就可以完成。不过会遇到一些坑,如果不注意,还是挺容易出错的。
第58题:最后一个单词的长度 |
---|
给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 |
示例:
输入: "Hello World"
输出: 5
说明: 一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
02、题解分析
因为我们要获取的是最后一个单词的长度,不难想到可以从尾开始遍历。
题中的陷阱在于,结尾处仍然可能有空格。
所以一般的解题思路为,先去掉末尾的空格,然后从尾向前开始遍历,直到遇到第一个空格处结束。
但这里可以取一个巧,我们可以通过一个 count 来记数,从第一个不为空格的数开始记起。换句话说,如果末尾处为空格,此时 count 值为 0,可以直接略过。
实现代码如下:
//JAVA
class Solution {
public int lengthOfLastWord(String s) {
if(s == null || s.length() == 0)