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

相关推荐
allan bull8 分钟前
在节日中寻找平衡:圣诞的欢乐与传统节日的温情
人工智能·学习·算法·职场和发展·生活·求职招聘·节日
a程序小傲8 分钟前
蚂蚁Java面试被问:注解的工作原理及如何自定义注解
java·开发语言·python·面试
似水এ᭄往昔24 分钟前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
咕噜企业分发小米26 分钟前
腾讯云向量数据库HNSW索引如何更新?
人工智能·算法·腾讯云
charlie11451419128 分钟前
嵌入式现代C++教程:C++98——从C向C++的演化(3)
c语言·开发语言·c++·笔记·学习·嵌入式
lcreek31 分钟前
LeetCode215. 数组中的第K个最大元素、LeetCode912. 排序数组
python·算法·leetcode
TAEHENGV34 分钟前
创建目标模块 Cordova 与 OpenHarmony 混合开发实战
android·java·开发语言
程序员zgh36 分钟前
C语言 指针用法与区别(指针常量、常量指针、指针函数、函数指针、二级指针)
c语言·开发语言·jvm·c++
Einsail1 小时前
天梯赛题解(3-6)
算法
杜子不疼.1 小时前
【LeetCode 852 & 162_二分查找】山脉数组的峰顶索引 & 寻找峰值元素
算法·leetcode·职场和发展