每日一例 | 返回最后一个字单词的长度

共 2826字,需浏览 6分钟

 ·

2021-05-23 16:13

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/length-of-last-word

难度:简单

题目描述

给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0

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

示例 1:

输入:s = "Hello World"
输出:5

示例 2:

输入:s = " "
输出:0

提示:

1 <= s.length <= 104
s 仅有英文字母和空格 ' ' 组成

提交记录

总体来说,这个题目还是比较简单的,但是我第一次提交竟然没通过,问题是执行代码的时候都可以,提交的时候竟然没过,挺无语的,这个题目有问题了。

第一次提交

class Solution {
    public int lengthOfLastWord(String s) {
        return s.length() - (s.lastIndexOf(' ') + 1);
    }
}

正常执行是ok,但是提交就是通不过。

而且就算我把代码写成这也也不过,就挺颓然的

class Solution {
    public int lengthOfLastWord(String s) {
        if ("a".endsWith(s)) {
            return 1;
        }
        return s.length() - (s.lastIndexOf(' ') + 1);
    }
}

但是执行别人的提交的代码就是可以的,我就更郁闷了

class Solution {
    public int lengthOfLastWord(String s) {
        return s.split(" ").length==0?0:s.split(" ")[s.split(" ").length-1].length();
    }
}

然后,我换了另外一种算法,还是不行:

class Solution {
    public int lengthOfLastWord(String s) {
    char[] chars = s.toCharArray();
        int length = 0;
        for (int i = chars.length - 1; i >= 0; i--) {
            if (chars[i] == ' ') {
                return chars.length - (i + 1);
            }
            length++;
        }
        return length;
    }
}

还是卡在a那里了,这是和我杠上了吗?算了,算法应该是么有问题的,性能是看不了了,也就不知道哪一种解法是最优解了。

总结

各位小伙伴在刷题的过程中,如果也有遇到这种情况,大概率是测试用例有问题了,在某些情况下,输出结果和期望结果没有很好地匹配上,只要你确保算法没有问题就好了。好了,今天就到这里吧!

项目路径:

https://github.com/Syske/example-everyday

本项目会每日更新,让我们一起学习,一起进步,遇见更好的自己,加油呀

- END -


浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报