LeetCode58.最后一个单词的长度

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

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

示例 1:

输入:s = “Hello World”
输出:5
解释:最后一个单词是”World”,长度为5。

示例 2:

输入:s = ” fly me to the moon ”
输出:4
解释:最后一个单词是”moon”,长度为4。

示例 3:

输入:s = “luffy is still joyboy”
输出:6
解释:最后一个单词是长度为6的”joyboy”。

方法一:反向遍历

题目要求得到字符串中最后一个单词的长度,可以反向遍历字符串,寻找最后一个单词并计算其长度。

由于字符串中至少存在一个单词,因此字符串中一定有字母。首先找到字符串中的最后一个字母,该字母即为最后一个单词的最后一个字母。

从最后一个字母开始继续反向遍历字符串,直到遇到空格或者到达字符串的起始位置。遍历到的每个字母都是最后一个单词中的字母,因此遍历到的字母数量即为最后一个单词的长度。

class Solution {
    public int lengthOfLastWord(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;
    }
}
  • 时间复杂度:O(n),其中 n 是字符串的长度。最多需要反向遍历字符串一次。
  • 空间复杂度:O(1)。
class Solution {
    public int lengthOfLastWord(String s) {
        String trim = s.trim();
        int length = trim.length();
        int k = 0;
        for (int i = length - 1; i >= 0; i--) {
            if (trim.charAt(i) == ' ') {
                break;
            } else {
                k++;
            }
        }
        return k;
    }
}

Original: https://www.cnblogs.com/ciel717/p/16657947.html
Author: 夏尔_717
Title: LeetCode58.最后一个单词的长度

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/712322/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL-连接数据库

    连接数据库在操作数据库之前,需要连接它,输入命令:mysql -u用户名 -p密码。 在你自己本机上连接数据库用上述方式是可以的,不过在平台上连接数据库还需要加上一句-h127.0…

    技术杂谈 2023年7月11日
    062
  • 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之业务数据增删改查(七)

    基于Vue和Quasar的前端SPA项目实战之业务数据(七) 回顾 通过上一篇文章基于Vue和Quasar的前端SPA项目实战之表关系(六)的介绍,元数据设计功能全部实现了,本文主…

    技术杂谈 2023年7月24日
    085
  • 异构计算技术分析

    异构计算技术分析 参考文献链接 https://mp.weixin.qq.com/s/xW_Y0JBKK3d42IZvHA9CrQ https://mp.weixin.qq.com…

    技术杂谈 2023年5月31日
    0111
  • 基于UML软件建模的企业人事管理系统

    前言 随着信息技术的发展和互联网环境的成熟,管理信息系统的技术更新函待解决。人事管理工作虽然由企业人事管理人员((HR)等负责,但随着企业规模的不断扩大,如果所有工作全部由HR来做…

    技术杂谈 2023年6月21日
    0106
  • 怎么用HTML画出三角形

    / 等腰三角形(箭头朝上); / div1{ width: 0;height: 0;border-bottom: 100px solid cyan;border-left: 50p…

    技术杂谈 2023年6月21日
    089
  • quartz框架(六)-ThreadPool

    本篇博文,博主将介绍Quartz框架中ThreadPool线程池相关的内容。线程池顾名思义,就是一个可以帮助我们来进行线程资源管理的对象。在web开发中,常见的就有数据库连接池,h…

    技术杂谈 2023年7月24日
    079
  • Vue前端框架基础+Element的使用

    前置内容: AJAX基础+Axios快速入门+JSON使用 1、VUE 1.1 概述 1.2 快速入门 1.3 Vue指令 1.3.1 v-bind & v-model 指…

    技术杂谈 2023年7月25日
    076
  • 关于测试的讨论从未停止过

    关于测试的讨论从未停止过,最近忙着推荐 seldom 测试框架,所以,上testerhome 次数增加。 有人发贴子 技术&#x…

    技术杂谈 2023年5月31日
    092
  • 一次打包引发的思考,原来maven还能这么玩?

    前言 依赖关系 你会怎么做? 必知的几个参数 总结 昨天有一个读者找我的交流工作心得,偶然间提到一个有趣的问题,如下: 「 大致的意思」:公司最近在整 多&a…

    技术杂谈 2023年7月23日
    063
  • 【远程办公】Mixin 团队招聘

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    073
  • AJAX 简介

    AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTML / XHTML CSS …

    技术杂谈 2023年5月31日
    0125
  • 最小二乘法小结

    http://www.cnblogs.com/pinard/p/5976811.html 最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到…

    技术杂谈 2023年5月31日
    075
  • python绘图之turtle库的相关使用

    turtle库的介绍 turtle库的使用 turtle库中相关的函数 窗体 setup()函数 screensize()函数 坐标 goto()函数 position()函数 h…

    技术杂谈 2023年7月24日
    088
  • API安全的最佳实践

    应用程序编程接口(API)是一组允许软件组件进行交互的协议。中间接口通常用于简化开发,使软件团队能够重复使用代码。API还通过将应用程序与它们所运行的基础设施脱钩来抽象系统之间的功…

    技术杂谈 2023年6月1日
    092
  • caching_sha2_password‘ cannot be loaded问题解决

    在mac上安装 8.0.19版本的mysql后,使用navicat连接时,报caching_sha2_password’ cannot be loaded的异常。 原因…

    技术杂谈 2023年5月30日
    0114
  • 1维线性回归

    w= 1.0595238095237538 b= -117.79761904760 undefined Original: https://www.cnblogs.com/canx…

    技术杂谈 2023年7月10日
    060
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球