面试经典150题——最后一个单词的长度

经典面试150题 day19

      • 题目来源
      • 我的题解
        • [方法一 遍历](#方法一 遍历)
        • [方法二 使用库函数](#方法二 使用库函数)

题目来源

力扣每日一题;题序:58

我的题解

方法一 遍历

先将最右的空格跳过,将start指向最右侧第一个非空格的字符,然后再往左遍历,直到再次遇到空格结束
时间复杂度 :O© 。C表示最后一个单词的长度+最右侧空格数
空间复杂度:O(1)

java 复制代码
public int lengthOfLastWord(String s) {
    int start=s.length()-1;
    while(start>=0&&s.charAt(start)==' ') start--;
    int res=0;
    while(start>=0&&s.charAt(start)!=' ') {
        start--;
        res++;
    }
    return res;
}
方法二 使用库函数

先使用trim()函数去除两侧多余的空格,然后使用lastIndexOf()函数获取空格最后一次出现的位置,最后一个单词的长度=字符串长度-空格最后一次出现的位置-1.
时间复杂度:O(n)

空间复杂度:O(n)。字符串是不可变的,因此在trim时会使用额外的空间

java 复制代码
public int lengthOfLastWord(String s) {
    s=s.trim();
    int start=s.lastIndexOf(' ');
    return s.length()-start-1;
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐
叶总没有会几秒前
OpenFeign
java·开发语言·springcloud·openfeign
小七在进步1 分钟前
类和对象(四)
java·javascript·ajax
海天一色y2 分钟前
图像分割全解析:从经典算法到深度学习的原理与实战(Python + MATLAB)
python·深度学习·算法
白帽攻防录5 分钟前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
写了20年代码的老程序员10 分钟前
想让 AI 改 Bug 快准狠?先给日志加个业务代码坐标
java·后端·apache log4j
SL_staff12 分钟前
JVS-Rules vs Drools:金融风控团队为何转向业务可编辑的决策平台
java·spring cloud·github
Zhou14113613 分钟前
SpringMVC_03_进阶功能
java
咖啡八杯18 分钟前
常量与枚举设计规范:HttpStatus 自定义 601 警告码
java·架构·代码规范
ThinkerQAQ_18 分钟前
并发编程(六):Atomic 的实现——从 Runtime 到 CPU
java·go·picasso
垆边人似月.21 分钟前
华为算法题:最长连续递增子序列的变
数据结构·算法·leetcode