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);
    }
}

相关推荐
Hy行者勇哥41 分钟前
Python 与 VS Code 结合操作指南
开发语言·python
tainshuai2 小时前
用 KNN 算法解锁分类的奥秘:从电影类型到鸢尾花开
算法·分类·数据挖掘
麦兜*7 小时前
Swift + Xcode 开发环境搭建终极指南
开发语言·ios·swiftui·xcode·swift·苹果vision pro·swift5.6.3
Coovally AI模型快速验证8 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun8 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
萧鼎8 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
RaymondZhao348 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
艾伦~耶格尔8 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
zhangfeng11338 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
yujkss9 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python