LeetCode——58. 最后一个单词的长度(Java)

题目描述

题干:
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。
返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:
输入:s = "Hello World"
输出:5

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

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

解题思路

返回字符串最后单词的长度,反手直接就是 split 方法,直接优雅的返回答案

当然采用封装的方法肯定是复杂度较高的,所以要想最原始的方法

我们必须自己便利数组,为了方便可以反向便利,之后遇到空格停止返回

正确代码

    public int lengthOfLastWord(String s) {
        String[] arr = s.split(" ");
        return arr[arr.length - 1].length();
    }

    public int lengthOfLastWord01(String s) {
        int index = s.length() - 1;
        while (s.charAt(index) == ' ') {
            index--;
        }
        int wordLength = 0;
        while (index >= 0 && s.charAt(index) != ' ') {
            wordLength++;
            index--;
        }
        return wordLength;
    }

总结

简单的字符串问题,考虑到最少的遍历和额外的空间即可

今天的简单题也是想让大家提前做完去和家人团聚和多吃月饼吧!

阴晴圆缺都休说,且喜人间好时节,这里祝所有努力的朋友们中秋快乐!

如果文章存在问题或者有更好的题解,欢迎在评论区斧正和评论,各自努力,你我最高处见
posted @ 2021-09-21 18:58  21岁还不是架构师  阅读(95)  评论(0编辑  收藏  举报