LeetCode150道面试经典题--最后一个单词的长度(简单)

1.题目

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

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

2.示例

3.思路

通过对字符串的反转,转为数组开始遍历,设计两个指针。一个指针找到最后单词的起始,另一个指针指向单词指针的末尾,

LeetCode代码:

java 复制代码
class Solution {
    public int lengthOfLastWord(String s) {
        int preDex= 0;
        int tailDex= 0;
        StringBuffer stringBuffer = new StringBuffer(s);
        char sts[] = stringBuffer.reverse().toString().toCharArray();
        while (sts[preDex]==' '){
            preDex++;
        }
        tailDex = preDex;
        while (sts[tailDex]!=' '){
            if (tailDex == sts.length-1){
                tailDex++;
                break;
            }
            tailDex++;
        }
        return tailDex-preDex;
    }
}

详细解析案例代码:时间复杂度O(n);

java 复制代码
package LettCode08;

import java.util.Arrays;

public class javaDemo {
    public static void main(String[] args) {
        String s = "   fly me   to   the moon  ";
//        最后一个单词的头下角标和尾下角标
        int preDex= 0;
        int tailDex= 0;
//        将字符串反转
        StringBuffer stringBuffer = new StringBuffer(s);
        char sts[] = stringBuffer.reverse().toString().toCharArray();
//        找到最后一个单词的起始
        while (sts[preDex]==' '){
            preDex++;
        }
//        找到一个单词的末尾
        tailDex = preDex;
        while (sts[tailDex]!=' '){
            if (tailDex == sts.length-1){
                tailDex++;
                break;
            }
            tailDex++;
        }
//        初始位减去末尾位就是长度了
        System.out.println(tailDex-preDex);
    }
}

相关推荐
普通网友4 分钟前
pytest一些常见的插件
开发语言·python·pytest
苦瓜花9 分钟前
【Kotlin】初入门
android·开发语言·kotlin
cndes34 分钟前
给Miniconda换源,让包下载更迅速
开发语言·python
ricardo19731 小时前
SSR / SSG 性能对比:Next.js 三种渲染模式实测数据
前端·面试
froyoisle1 小时前
CSP 真题解析:[CSP-J 2019-T4] 加工零件
c++·算法·bfs·csp-j·算法竞赛·信息学·信奥赛
LuminousCPP1 小时前
C 语言集中实践全记录:顺序表 + 单链表原理实现与通讯录项目实战【附可运行源码】
c语言·开发语言·数据结构·经验分享·笔记
兰令水1 小时前
hot100【acm版】【2026.7.13打卡-java版本】
java·开发语言·数据结构·算法·leetcode·面试
Tisfy1 小时前
LeetCode 1291.顺次数:打表/枚举
算法·leetcode·题解·枚举·遍历
铅笔侠_小龙虾1 小时前
Rust 学习(4)-函数与注释
开发语言·学习·rust
ysa0510302 小时前
【板子】拓扑排序
c++·算法·图论·板子