LeetCode【58、最后一个单词的长度】(简单)

205 阅读1分钟

问题描述

这是 LeetCode 上的 58. 最后一个单词的长度,难度为 简单

关键词: 字符串字符串遍历

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

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

示例 1:

输入:s = "Hello World"
输出:5

示例 2:

输入:s = "   fly me   to   the moon  "
输出:4

示例 3:

输入:s = "luffy is still joyboy"
输出:6

提示:

  1. 1 <= s.length <= 104
  2. s 仅有英文字母和空格 ' ' 组成
  3. s 中至少存在一个单词

题解

这个题目就是考察基础的字符串遍历问题,题目中给出的提示中表示至少有一个单词,且入参只有英文字母和空格。想要获取字符串的最后一个单词,就是 从后向前遍历 这个字符串,最后一个单词后面的空格不管,遍历到单词的前面是空格就结束。

class Solution {
    public int lengthOfLastWord(String s) {
        int len = s.length();
        int ans = 0;
        for (int i = len-1; i >= 0; i--) {
            if (s.charAt(i) == ' ') {
                if (ans == 0) {
                    // 如果单词的后面有空格,跳过不计数
                    continue;
                }
                // 遍历到单词前面的空格就跳出计数
                break;
            }
            ++ans;
        }
        // 直接遍历到最后或者跳出的循环
        return ans;
    }
}

引用

我的 github 仓库已经同步建立,github.com/haonange131…