Leetcode 58 Length of Last Word

本文介绍了一种通过遍历字符串来计算其最后一个单词长度的方法。关键在于从字符串末尾开始寻找,直到遇到第一个空格为止,以此确定最后一个单词的边界。

摘要生成于 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.

Example:

Input: "Hello World"
Output: 5

中文题意

输入为一个字符串s,s中只会包含大写字母、小写字母和空格三种内容,找到s中最后一个单词的字母个数。

是否为一个单词的判断标准为:没有空格符的连续字符串。

分析

关键是找到s中最后一个单词,从后向前找最便捷,从后向前遍历的过程中,找到非空格字符的前一个字符为空格字符就停止遍历。

注意:字符串的长度计算函数为:length()

         空字符的表示为'';空格字符的表示为' '

java代码

class Solution {
    public int lengthOfLastWord(String s) {
       int count = 0;
       int len = s.length();
        
       while(len > 0 && s.charAt(len -1) == ' '){
           len--;
       }
        
       while(len > 0 && s.charAt(len -1) != ' '){
           count++;
           len--;
       }
        
        return count;
        
    }
}

### 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、付费专栏及课程。

余额充值