leetCode|最后一个单词的单词的长度

题目:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。

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

说明:一个单词是指由字母组成,但不包含任何空格的字符串。

示例:

  • 输入: “Hello World”
  • 输出: 5
Java代码
class Solution {
    public int lengthOfLastWord(String s) {
        if (s == null || s == " ") return 0;
        String str = s.trim();
        int len = str.length();
        while (len > 0) {
            if (str.charAt(--len) == ' ') {
                return str.length() - len -1;
            }
        }
        return str.length();
    }
}
说明:

字符串从后往前遍历,遇到第一个空格字符就返回遍历单词的长度。需要特别注意,在遍历前需要去掉参数的前后空格字符。

还有一种解法,利用split(" ")方法对参数s分割,获取字符数组,从而获取数组中最后一个单词的长度。

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

这种解法的执行时间较第一种方法遍历方法较长,主要是split()方法耗时较长的缘故。

结果

执行用时 :1 ms, 在所有 Java 提交中击败了91.90%的用户
内存消耗 :35.4 MB, 在所有 Java 提交中击败了83.04%的用户

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值