58 最后一个单词的长度

1. 问题描述:

给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。

如果不存在最后一个单词,请返回 0 。

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

示例:

输入: "Hello World"
输出: 5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/length-of-last-word

2. 思路分析:

① 其实思路还是比较简单,根据题目可以知道字符串中只存在大小写字母与空格,所以可以直接使用java的api来解决,在java中可以使用spilt方法来分割字符串,这里可以使用空格开分割,那个最后一个元素的长度就是结果

② 需要注意输入的字符串的特殊情况,进行一下简单的判断即可

3. 代码如下:

直接写的:

class Solution {
    public static int lengthOfLastWord(String s) {
        if(s.equals("")) return 0;
        String str[] = s.split(" ");
        if(str.length == 0) return 0;
        return str[str.length - 1].length();
    }
}

领扣题解中发现的思路很好的代码,它是才能够字符串后面开始往前找,先是去掉空格,然后在寻找最后一个单词,代码如下:

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;
    }
}
发布了569 篇原创文章 · 获赞 153 · 访问量 59万+

猜你喜欢

转载自blog.csdn.net/qq_39445165/article/details/105303559
今日推荐