写点什么

【LeetCode】最后一个单词的长度 Java 题解

用户头像
HQ数字卡
关注
发布于: 2 小时前

题目描述

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。


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



示例 1:
输入:s = "Hello World"输出:5
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/length-of-last-word著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码

思路分析

  • 今天的每日一题是字符串处理题目,题目明确求解最后一个单词的长度。我们可以对字符串进行收尾空格处理。然后从后往前遍历,提升算法的执行效率。

  • 通过代码调用了 trim() 函数。源码如下,我们在写代码的时候,也可以模仿这种写法。


    public String trim() {        int len = value.length;        int st = 0;        char[] val = value;    /* avoid getfield opcode */
while ((st < len) && (val[st] <= ' ')) { st++; } while ((st < len) && (val[len - 1] <= ' ')) { len--; } return ((st > 0) || (len < value.length)) ? substring(st, len) : this; }
复制代码

通过代码

class Solution {    public int lengthOfLastWord(String s) {        String newS = s.trim();        int n = newS.length();        int ans = 0;        for (int i = n - 1; i >= 0; i--) {            if (' ' == newS.charAt(i)) {                break;            } else {                ans++;            }        }
return ans; }}
复制代码

总结

  • 上述算法的时间复杂度是 O(n), 空间复杂度是 O(n)

  • 坚持算法每日一题,加油!

发布于: 2 小时前阅读数: 2
用户头像

HQ数字卡

关注

还未添加个人签名 2019.09.29 加入

LeetCode,略懂后端的RD

评论

发布
暂无评论
【LeetCode】最后一个单词的长度Java题解