LeetCode 58. 最后一个单词的长度

题目描述

58. 最后一个单词的长度

思路分析

解法一:从后向前扫描(推荐)

核心思路

  • 从字符串末尾跳过空格,找到最后一个单词的结尾。
  • 继续向前统计字符数量直到遇到空格或字符串开始。
  • 统计值即为最后一个单词长度。


复杂度分析

  • 时间复杂度:O(n),其中 n 表示字符串长度。
  • 空间复杂度:O(1),仅使用常数额外空间。
class Solution {
    public int lengthOfLastWord(String s) {
        int i = s.length() - 1;

        // 跳过末尾空格
        while (i >= 0 && s.charAt(i) == ' ') {
            i--;
        }

        int len = 0;
        while (i >= 0 && s.charAt(i) != ' ') {
            len++;
            i--;
        }

        return len;
    }
}
func lengthOfLastWord(s string) int {
	i := len(s) - 1

	// 跳过末尾空格
	for i >= 0 && s[i] == ' ' {
		i--
	}

	length := 0
	for i >= 0 && s[i] != ' ' {
		length++
		i--
	}

	return length
}

相似题目

题目 难度 考察点
151. 反转字符串里的单词 中等 字符串
434. 字符串中的单词数 简单 字符串
344. 反转字符串 简单 双指针
125. 验证回文串 简单 双指针
8. 字符串转换整数 (atoi) 中等 字符串
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/23908408
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!