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

题目来源

力扣每日一题;题序:58

我的题解

方法一 遍历

先将最右的空格跳过,将start指向最右侧第一个非空格的字符,然后再往左遍历,直到再次遇到空格结束

时间复杂度:O© 。C表示最后一个单词的长度+最右侧空格数
空间复杂度:O(1)

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时会使用额外的空间

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

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

相关推荐

  1. 面试经典150——最后一个单词长度

    2024-04-27 19:02:03       30 阅读
  2. 最后一个单词长度

    2024-04-27 19:02:03       63 阅读
  3. 力扣由浅至深 每日一.10 最后一个单词长度

    2024-04-27 19:02:03       43 阅读
  4. 【算法】58. 最后一个单词长度

    2024-04-27 19:02:03       56 阅读
  5. 【C++】每日一 58 最后一个单词长度

    2024-04-27 19:02:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 19:02:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 19:02:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 19:02:03       82 阅读
  4. Python语言-面向对象

    2024-04-27 19:02:03       91 阅读

热门阅读

  1. 容器内的服务和docker 映射的服务

    2024-04-27 19:02:03       29 阅读
  2. Python 潮流周刊#48:Python 3.14 的发布计划

    2024-04-27 19:02:03       28 阅读
  3. 2023-2024年6G行业报告合集(精选33份)

    2024-04-27 19:02:03       37 阅读
  4. C++问题笔记

    2024-04-27 19:02:03       32 阅读
  5. filebeat 设置elasticsearch索引的 max_result_window

    2024-04-27 19:02:03       30 阅读
  6. LeetCode刷题笔记第104题:二叉树的最大深度

    2024-04-27 19:02:03       33 阅读
  7. spring mvc 和 struts 的区别是什么?

    2024-04-27 19:02:03       30 阅读
  8. 新质生产力与科技创新

    2024-04-27 19:02:03       37 阅读