LeetCode string系列刷题 Java 58. Length of Last Word

本文介绍如何使用Java内置函数处理字符串,包括去除空白符、查找字符位置及计算子串长度。重点讲解了两种方法:一是直接利用trim()和lastIndexOf()函数;二是将字符串转为数组并获取最后一个元素的长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given a string s consists of upper/lower-case alphabets and empty space characters '
 ', return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

For example, 
Given s = "Hello World",
return 5.
现在有一个序列,里面会包含大小写字符和空白符。
找到最后一个字符,计算它的长度。
 

本题所需基础为应该熟悉Java的内置函数 :

trim() 方法用于删除字符串的头尾空白符。

语法

public String trim()

参数

返回值

删除头尾空白符的字符串。

Java lastIndexOf() 方法

Java String类Java String类


lastIndexOf() 方法有以下四种形式:

  • public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

  • public int lastIndexOf(int ch, int fromIndex): 返返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

  • public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

  • public int lastIndexOf(String str, int fromIndex): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

熟悉Java的基础知识:

在java中String类可以定义字符串变量和字符串数组,length()用于求String字符串对象的长度,而length用

  于求String字符串数组的长度。

  length()是求String字符串对象中字符的个数,而length是求字符串数组中有多少个字符串。

String为字符串 String[]为字符串数组,意味着String[]包含很多String
比如
String s1="1";
String s2="1";
String s3="1";
Sring[]arr=new String[]{s1,s2,s3}

 

 

解法一:基于字符串利用Java内置函数 O(1)解决问题:

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

运行时间 4ms

解法二:也是利用内置函数 解法与上述解法有些许不同、此解法将字符串转化为字符串数组来做:

public class Solution {

    public int lengthOfLastWord(String s) {

        if(s.trim().equals("")|| s.length() == 0){

            return 0;

        }

    

        String[] ss = s.trim().split(" ");//去掉字符串前后空格以“ ”来划分字符串数组

        int len = ss.length; //字符串数组中数组的个数

        return ss[len - 1].length(); //返回最后一个数组的长度

        

    }

}

这种写法需考虑到“”与“    ” 的特殊情况。

### LeetCode Problem 58: Length of Last Word The goal is to find the length of the last word in a string. A word is defined as a maximal substring consisting of non-space characters only. #### Java Implementation Below is an efficient implementation using built-in methods: ```java class Solution { public int lengthOfLastWord(String s) { if (s == null || s.isEmpty()) return 0; String trimmedString = s.trim(); // Remove leading and trailing spaces[^3] if (trimmedString.isEmpty()) return 0; // Split by space, then get the last element's length. String[] words = trimmedString.split(" "); return words[words.length - 1].length(); } } ``` This code first checks if the input string `s` is either null or empty. If so, it returns zero immediately. Next, any leading and trailing whitespace from the string gets removed with `trim()`. Should this result be empty after trimming, again, zero is returned because no valid words exist. Finally, splitting the cleaned-up string into substrings based on spaces allows accessing the final array component which represents the last word whose length can thus be determined easily. For performance optimization considerations when dealing specifically with large strings where memory usage might become critical due to creating intermediate arrays during split operations, another approach directly iterates backward through the given string until encountering its initial non-whitespace character marking end-of-last-word boundary while counting letters encountered along the way without needing additional storage beyond single integer counter variable holding current count value.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值