面试经典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;
}

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

相关推荐
C雨后彩虹5 分钟前
5G网络建设
java·数据结构·算法·华为·面试
机器学习之心7 分钟前
最小二乘支持向量机(LSSVM)结合遗传算法(GA)解决单目标优化问题,MATLAB代码
算法·支持向量机·matlab·单目标优化问题
码界奇点11 分钟前
基于Spring Boot的后台管理系统设计与实现
java·spring boot·后端·车载系统·毕业设计·源代码管理
爱敲点代码的小哥11 分钟前
json序列化和反序列化 和 数组转成json格式
java·前端·json
零度念者15 分钟前
Java IO/NIO 深度解析:从底层原理到高性能图片网关实战
java·nio
没有故事的Zhang同学23 分钟前
09-🔍数据结构与算法核心知识 | 二叉搜索树:有序数据结构理论与实践
算法
这是程序猿26 分钟前
基于java的ssm框架经典电影推荐网站
java·开发语言·spring boot·spring·经典电影推荐网站
Nan_Shu_61431 分钟前
学习:Java (1)
java·开发语言·学习
花花无缺35 分钟前
搞清‘’时区设置‘’以及Mysql的`DATETIME` 和 `TIMESTAMP`
java·mysql