leetcode58:最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大
子字符串
。
示例 1:
输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为 5。
示例 2:
输入:s = " fly me to the moon " 输出:4 解释:最后一个单词是“moon”,长度为 4。
示例 3:
输入:s = "luffy is still joyboy" 输出:6 解释:最后一个单词是长度为 6 的“joyboy”。
提示:
1 <= s.length <= 104s仅有英文字母和空格' '组成s中至少存在一个单词
步骤1:定义问题性质
输入输出条件
- 输入:一个字符串
s,由若干单词组成,单词之间用空格隔开。字符串的长度在1到10^4之间。 - 输出:最后一个单词的长度,返回一个整数。
限制
- 字符串
s只包含英文字母和空格。 - 字符串中至少存在一个单词。
边界条件
- 字符串可能包含前后空格。
- 字符串的长度可能达到最大值(
10^4),需考虑性能。
步骤2:问题分解
将问题分解为以下几个步骤:
- 去除字符串两端的空格:使用内置的字符串函数来确保没有多余的空格干扰。
- 从后向前遍历字符串:找到最后一个单词的起始位置和结束位置。
- 计算最后一个单词的长度:从找到的起始位置和结束位置进行长度计算。
解决方案逻辑
- 去除两端空格:可使用
std::string::erase和std::find_if或者直接使用 C++11 及以上的std::string::trim方法(若有)。 - 从后向前遍历:使用循环,从最后一个字符向前查找,直到遇到空格。
- 长度计算:通过找到的起始和结束位置计算长度。
算法设计
- 时间复杂度:O(n),因为我们需要遍历字符串一遍。
- 空间复杂度:O(1),只使用了固定数量的额外空间。
这种方法是最有效的,因为我们只需对字符串进行一次遍历,且不需要额外的存储结构。
步骤3:C++代码实现
第二种做法,直接统计最后一个单词的单词数量.

步骤4:算法启发
通过解决这个问题,我们可以得到以下启发:
- 字符串处理技巧:掌握如何去除空格和遍历字符串,对于其他字符串处理问题同样适用。
- 效率提升:在处理大规模数据时,理解时间和空间复杂度的概念可以帮助我们选择最佳算法。
- 边界条件处理:学习如何处理字符串边界情况对于编写鲁棒代码至关重要。
步骤5:实际应用分析
应用示例
在自然语言处理(NLP)领域,确定文本中最后一个单词的长度可以用于多种用途:
- 文本分析:在分析用户输入时,了解最后一个单词的长度可以帮助推测用户的意图。
- 搜索引擎优化:在处理用户查询时,搜索引擎可以使用此算法来优化用户体验,根据输入的最后一个单词调整搜索结果。
具体实现
例如,考虑一个聊天机器人应用,机器人需要根据用户输入的最后一个单词生成响应。利用上述算法,机器人可以快速获取用户最新意图并给出合适的回复。通过提高响应速度和准确度,可以显著提升用户体验。
相关文章:
leetcode58:最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大 子字符串 。 示例 1: 输入:s "Hello World" 输出ÿ…...
18448 最小生成树
### 思路 使用Kruskal算法求解图的最小生成树。Kruskal算法通过对所有边按权值排序,然后逐步选择最小权值的边,确保不会形成环,直到构建出最小生成树。 ### 伪代码 1. 读取输入的结点数n和边数m。 2. 读取每条边的信息,存储在边列…...
前端工程化 - Vue
环境准备 Vue-cli是Vue官方提供的一个脚手架,用户快速生成一个Vue的项目模板。 Vue-cli提供了如下功能: 统一的目录结构本地调试热部署单元测试集成打包上线 需要安装Node.js 安装Vue-cli npm install -g vue/cli通过vue --version指令查看是否安装成…...
使用 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力
通过 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力 文章目录 前言一、机密计算二、使用 NVIDIA H100 Tensor Core GPU 的 Azure 机密计算1. 安全功能2. 可扩展性和可编程性三、场景1. 模型机密性2. 推理/提示机密性3. 使用私有数据进行微调4. 多方培训结论前言 这是…...
目标检测与图像分类:有什么区别?各自的使用场景是什么?
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
Lua 数据类型
Lua 数据类型 Lua 是一种轻量级的编程语言,因其简单性和灵活性而广受欢迎。在 Lua 中,数据类型是编程的基础,它们决定了变量能够存储哪种类型的数据。Lua 的数据类型可以分为以下几个类别: 1. nil nil 是 Lua 中的一个特殊类型…...
复现文章:R语言复现文章画图
文章目录 介绍数据和代码图1图2图6附图2附图3附图4附图5附图6 介绍 文章提供画图代码和数据,本文记录 数据和代码 数据可从以下链接下载(画图所需要的所有数据): 百度云盘链接: https://pan.baidu.com/s/1peU1f8_TG2kUKXftkpYq…...
东方仙盟——软件终端架构思维———未来之窗行业应用跨平台架构
一、创生.前世今生 在当今的数字化时代,我们的服务覆盖全球,拥有数亿客户。然而,这庞大的用户规模也带来了巨大的挑战。安全问题至关重要,任何一处的漏洞都可能引发严重的数据泄露危机。网络带宽时刻面临考验,稍有不足…...
支持向量机(SVM)基础教程
一、引言 支持向量机(Support Vector Machine,简称SVM)是一种高效的监督学习算法,广泛应用 于分类和回归分析。SVM以其强大的泛化能力、简洁的数学形式和优秀的分类效果而备受机器学 习领域的青睐。 二、SVM基本原理 2.1 最大间…...
Python小示例——质地不均匀的硬币概率统计
在概率论和统计学中,随机事件的行为可以通过大量实验来研究。在日常生活中,我们经常用硬币进行抽样,比如抛硬币来决定某个结果。然而,当我们处理的是“质地不均匀”的硬币时,事情就变得复杂了。质地不均匀的硬币意味着…...
京东web 京东e卡绑定 第二部分分析
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…...
【数据结构与算法】Greedy Algorithm
1) 贪心例子 称之为贪心算法或贪婪算法,核心思想是 将寻找最优解的问题分为若干个步骤每一步骤都采用贪心原则,选取当前最优解因为没有考虑所有可能,局部最优的堆叠不一定让最终解最优 贪心算法是一种在每一步选择中都采取在当前状态下最好…...
Ubuntu22.04之mpv播放器高频快捷键(二百七十)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...
新闻推荐系统:Spring Boot的可扩展性
6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…...
目录工具类 - C#小函数类推荐
此文记录的是目录工具类。 /***目录工具类Austin Liu 刘恒辉Project Manager and Software DesignerE-Mail: lzhdim163.comBlog: http://lzhdim.cnblogs.comDate: 2024-01-15 15:18:00***/namespace Lzhdim.LPF.Utility {using System.IO;/// <summary>/// The Objec…...
速盾:如何判断高防服务器的防御是否真实?
随着网络攻击日益增多和攻击手段的不断升级,保护网络安全变得越来越重要。高防服务器作为一种提供网络安全保护的解决方案,受到了越来越多的关注。然而,对于用户来说,如何判断高防服务器的防御是否真实,是否能够真正保…...
MySQL连接查询:联合查询
先看我的表结构 emp表 联合查询的关键字(union all, union) 联合查询 基本语法 select 字段列表 表A union all select 字段列表 表B 例子:将薪资低于5000的员工, 和 年龄大于50 岁的员工全部查询出来 第一种 select * fr…...
Gitea 数据迁移
一、从 Windows 迁移 Gitea 1. 备份 Gitea 数据 1.1 备份仓库文件 在 Windows 中,Gitea 仓库文件通常位于 C:\gitea\data\repositories。你可以使用压缩工具将该目录打包: 1.)右键点击 C:\gitea\data\repositories 目录,选择 “…...
MySQL 绪论
数据库相关概念 数据库(DB):存储数据的仓库数据库管理系统(DBMS):操纵和管理数据库的大型软件SQL:操纵关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准主流的关系型数…...
什么是 HTTP Get + Preflight 请求
当在 Chrome 开发者工具的 Network 面板中看到 GET Preflight 的 HTTP 请求方法时,意味着该请求涉及跨域资源共享 (CORS),并且该请求被预检了。理解这种请求的背景,主要在于 CORS 的工作机制和现代浏览器对安全性的管理。 下面是在 Chrome …...
嵌入式状态机设计与实现全解析
1. 嵌入式状态机基础概念状态机(State Machine)是嵌入式系统开发中最核心的设计模式之一,它通过定义系统可能处于的状态集合、状态之间的转换条件以及状态转换时执行的动作,为复杂系统行为建模提供了清晰框架。在嵌入式环境中&…...
3个步骤实现极致跨平台远程控制:BilldDesk Pro突破性体验
3个步骤实现极致跨平台远程控制:BilldDesk Pro突破性体验 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk 还在为远程协作的种种限制而烦恼吗?当你需…...
Pixel Language Portal快速上手:使用Gradio前端快速验证Hunyuan-MT-7B能力
Pixel Language Portal快速上手:使用Gradio前端快速验证Hunyuan-MT-7B能力 1. 项目概览 Pixel Language Portal(像素语言跨维传送门)是一款基于腾讯Hunyuan-MT-7B大模型构建的创新翻译工具。它将传统翻译体验重构为16-bit像素冒险风格&…...
4步轻松搞定Windows系统优化:Win11Debloat让你的电脑重获新生
4步轻松搞定Windows系统优化:Win11Debloat让你的电脑重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...
基于Ascend 950的Cube编程
直播回放链接:基于下一代硬件的Cube编程_哔哩哔哩_bilibili...
Youtu-Parsing模型C盘空间优化部署:清理与迁移实战指南
Youtu-Parsing模型C盘空间优化部署:清理与迁移实战指南 你是不是也遇到过这种情况?兴致勃勃地在Windows电脑上部署Youtu-Parsing这类大模型,准备大干一场,结果没跑几天,C盘就亮起了刺眼的红色警告。系统盘空间告急&am…...
拯救数字青春:GetQzonehistory让QQ空间记忆永久安家
拯救数字青春:GetQzonehistory让QQ空间记忆永久安家 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在这个信息爆炸的时代,我们的青春记忆正以数据形式储存在各大…...
告别ViT的笨重:手把手教你用SegFormer在Cityscapes数据集上实现高效语义分割
告别ViT的笨重:手把手教你用SegFormer在Cityscapes数据集上实现高效语义分割 在自动驾驶、遥感影像分析等计算机视觉应用中,语义分割技术扮演着关键角色。传统基于卷积神经网络(CNN)的方法虽然取得了显著进展,但面临着…...
保姆级教程:在Android项目中集成微信Matrix性能监控框架(含避坑指南)
Android性能监控实战:微信Matrix框架深度集成指南 在移动应用开发领域,性能优化始终是开发者面临的核心挑战之一。微信开源的Matrix框架作为一套全平台性能监控工具链,为Android开发者提供了从方法耗时、ANR检测到内存泄漏分析等全方位的监控…...
从手机拍照到专业扫描:5种主流三维重建数据集的‘幕后’采集故事与技术选型
从手机拍照到专业扫描:5种主流三维重建数据集的‘幕后’采集故事与技术选型 在数字孪生和元宇宙技术快速发展的今天,高质量三维重建数据集已成为计算机视觉领域的战略资源。不同于普通用户随手拍摄的二维照片,专业级三维数据集背后隐藏着精密…...
