当前位置: 首页 > news >正文

LeetCode面试150——58最后一个单词的长度

题目难度:简单

默认优化目标:最小化平均时间复杂度。

Python默认为Python3。

目录

1 题目描述

2 题目解析

3 算法原理及代码实现

3.1 反向遍历

参考文献


1 题目描述

给你一个字符串 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 <= 104

  • s 仅有英文字母和空格 ' ' 组成

  • s 中至少存在一个单词

2 题目解析

输入是一个字符串s,输出是最后一个单词的长度lengths是一句句子,英文单词之间用空格分开。既然是求最后一个单词的长度,从后往前找比从前往后找更快。

3 算法原理及代码实现

3.1 反向遍历

我们在s中从后往前遍历,第一个字符就是最后一个单词的最后一个字符。然后向前,直到遇到空格或者到达s的首位置。遍历到的字符个数即为length

平均时间复杂度O(n),平均空间复杂度O(1)。

C++代码实现

class Solution {
public:int lengthOfLastWord(string s) {int n=s.size()-1;int length=0;
​while(s[n]==' '){n--;}
​while(n>=0 && s[n]!=' '){n--;length++;}
​return length;
​}
};

Python代码实现

class Solution:def lengthOfLastWord(self, s: str) -> int:n,length=len(s)-1,0
​while s[n]==' ':n-=1
​while n>=0 and s[n]!=' ':n-=1length+=1
​return length

参考文献

力扣面试经典150题

力扣官方题解

相关文章:

LeetCode面试150——58最后一个单词的长度

题目难度&#xff1a;简单 默认优化目标&#xff1a;最小化平均时间复杂度。 Python默认为Python3。 目录 1 题目描述 2 题目解析 3 算法原理及代码实现 3.1 反向遍历 参考文献 1 题目描述 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字…...

MySQL——数据库的操作,数据类型,表的操作

MySQL——数据库的操作&#xff0c;数据类型&#xff0c;表的操作 1. 数据库的操作1.1 显示当前数据库1.2 创建数据库舍弃当前所写的SQL语句查看当前数据库服务全局的默认字符集 1.3 使用数据库1.4 查看当前操作的数据库查看MySQL的帮助 1.5 删除数据库 2. 常见数据类型2.1 数值…...

Go 临界资源 安全问题

临界资源安全的问题&#xff1a; 临界资源&#xff1a; 指并发环境中多个 进程/线程/协程 可以共享&#xff08;都可以调用&#xff09;的资源/变量&#xff0c;如果在并发环境中处理不当&#xff0c;就会造成一些 严重、问题 func main() {//临界资源a : 10go func() {a 100f…...

安卓常用控件(上)

文章目录 TextViewButtonEditText TextView textview主要用于在界面上显示一段文本信息。 属性名描述id给当前控件定义一个唯一的标识符。layout_width给控件指定一个宽度。match_parent&#xff1a;控件大小与父布局一样&#xff1b;wrap_content&#xff1a;控件大小刚好够包…...

基于 RabbitMQ 实现延迟消息的订单处理流程

文章目录 订单创建流程1. 商品查询与订单数据初始化2. 总价计算与订单保存3. 扣减库存与购物车清理4. 延迟消息与支付状态检测 订单延迟消息监听器支付成功与订单取消1. 订单支付成功2. 订单取消与库存恢复 总结 在现代电商系统中&#xff0c;订单处理是一个复杂且关键的环节。…...

使用Python将Word文档转换为PNG图片

在这篇博客中&#xff0c;我将介绍一个使用Python编写的小工具&#xff0c;它能够将指定文件夹中的所有Word文档&#xff08;.doc和.docx格式&#xff09;转换为PNG图片。这个工具基于wxPython库构建图形用户界面&#xff0c;并结合了win32com和PyMuPDF库实现文档格式的转换。接…...

Qt创建Json对象时浮点数的精度控制

我们在Qt中使用Json都是使用QJsonDocument、QJsonArray、QJsonObject、QJsonValue等类。 当我们在QJsonObject中插入浮点数字段时&#xff0c;会发现浮点数的小数位数很长&#xff0c;如下所示&#xff1a; #include <QJsonDocument> #include <QJsonArray> #incl…...

【海贼王航海日志:前端技术探索】CSS你了解多少?(二)

目录 1 -> 字体属性 1.1 -> 设置字体 1.2 -> 字体大小 1.3 -> 字体粗细 1.4 -> 文字样式 2 -> 文本属性 2.1 -> 文本颜色 2.1.1 -> 认识RGB 2.1.2 -> 设置文本颜色 2.2 -> 文本对齐 2.3 -> 文本装饰 2.4 -> 文本缩进 2.5 -&g…...

软件测试面试200问(全)

1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前 3 年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&a…...

【单片机毕业设计选题24106】-基于阿里云的心率呼吸监测系统

系统功能: 上电后OLED显示 “欢迎使用请稍后”&#xff0c;两秒后显示Connecting...表示 正在连接阿里云&#xff0c;正常连接阿里云后进入系统显示界面&#xff0c;如长时间显示Connecting...请 检查WiFi网络是否正确。 系统连接阿里云后可在阿里云界面查看到系统上报的温…...

leetcode28:找出字符串第一个匹配的下标

找出字符串第一个匹配的下标 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 public int strStr(Str…...

Java二十三种设计模式-桥接模式(10/23)

桥接模式&#xff1a;解耦抽象与实现的灵活设计 引言 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将抽象部分与其实现部分分离&#xff0c;使它们可以独立地变化。它是一种对象结构型模式&#xff0c;又称为柄体(Handle and Body)模…...

Java 面试指南

Java 面试指南 目录 引言Java 基础知识 数据类型运算符控制结构面向对象编程 Java 高级特性 异常处理集合框架泛型多线程与并发 Java 标准类库 java.lang 包java.util 包java.io 包 Java Web 开发 ServletJSPSpring 框架 数据库连接与JDBC JDBC 基础数据库连接池 设计模式 单…...

计算机毕业设计选题推荐-自习室座位预约系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

android13 删除兼容性警告窗口 deprecation warning 去除弃用警告

总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况 3.问题分析 4.代码更改 5.编译测试 6.彩蛋 1.前言 在 Android 13 中,为了提高用户体验和应用的兼容性,系统引入了一些新的隐私和安全特性。这些特性可能会影响旧版应用的行为,因此当用户运行可能不完全兼容 An…...

JESD204B/C协议学习笔记

JESD204B基础概念 204B包含传输层&#xff0c;链路层&#xff0c;物理层。 应用层是对 JESD204B 进行配置的接口&#xff0c;在标准协议中是不含此层&#xff0c;只是为了便于理解&#xff0c;添加的一个层。 协议层指工程中生成的IP核JESD204B&#xff0c;负责处理输入的用户…...

网络安全-渗透测试工具及插件介绍和使用方法

1、Burp Suite Burp Suite 是用于攻击web 应用程序的集成平台。 是一款广泛使用的网络安全工具套件&#xff0c;主要用于测试Web应用程序的安全性。它可以帮助安全研究人员、渗透测试人员和开发人员发现和利用Web应用程序中的安全漏洞。 &#xff08;1&#xff09;下载和安装&a…...

JAVA WEB初步实验

Spring应用开发环境准备 安装配置Spring应用开发环境 熟悉IntelliJ IDEA开发工具 打开idea工具&#xff0c;创建普通Java工程 配置普通Java工程运行环境 得到基本的Java运行环境配置正常 修改pom.xml文件&#xff0c;搭建Spring IOC运行环境 更新pom文件 新建User、TestSpr…...

30 个 JavaScript 技巧,让你的代码更具可读性

1 、使用 !! 转换为布尔值 使用双重否定快速将任何值转换为布尔值。 let truthyValue !!1; // true let falsyValue !!0; // false 2 、 默认函数参数 设置函数参数的默认值以避免定义错误。 function greet(name "Guest") {return Hello, ${name}!; }greet(…...

电商行业中选择分账系统的关键因素!

分账是指将一笔交易的款项拆分成多个部分&#xff0c;按照预先设定的比例或规则分配给相关方。在电商行业中&#xff0c;分账通常是指将交易金额分给卖家、平台和其他相关方。 具体来说&#xff0c;分账可以帮助实现以下目标&#xff1a; 卖家结算&#xff1a;将顾客支付的货…...

第1篇 | AUTOSAR方法论解码:从整车功能到ECU落地的工程哲学

在汽车智能化浪潮中&#xff0c;一个深刻的悖论正困扰着无数工程师&#xff1a;为什么标准化架构明明承诺了“一次开发、多处复用”&#xff0c;现实却是每个项目都在重复造轮子&#xff1f;答案或许藏在AUTOSAR方法论的核心逻辑里。 AUTOSAR方法论的本质&#xff0c;是将整车软…...

Claude Code + Suno MCP:在终端中创建 AI 音乐

在现代的编程和音乐创作中&#xff0c;AI 正在逐渐成为一股不可忽视的力量。Claude Code 是由 Anthropic 发布的一款命令行 AI 助手&#xff0c;与 Suno MCP Server 相结合&#xff0c;用户可以直接在终端中创作歌曲&#xff0c;包括撰写歌词、选择风格、生成音乐&#xff0c;整…...

硬件工程师的调试日常与职场趣事

1. 硬件工程师的日常&#xff1a;那些让人哭笑不得的瞬间 作为一名从业十年的硬件工程师&#xff0c;我见过太多同行们面对电路板时那副欲哭无泪的表情。这个行业就是这样——充满了让人抓狂的瞬间&#xff0c;但也正是这些时刻&#xff0c;让我们这群"电路修理工"有…...

SpringAI工具调用实战:手把手教你用ChatClient集成天气查询API(附完整代码)

SpringAI工具调用实战&#xff1a;手把手教你用ChatClient集成天气查询API 最近在开发一个智能聊天机器人时&#xff0c;遇到了一个常见需求&#xff1a;让机器人能够回答用户关于天气的实时查询。经过一番探索&#xff0c;我发现SpringAI的ChatClient配合工具调用功能&#xf…...

LVGL实战:手把手教你用FatFS给STM32上的LVGL挂载SD卡文件系统(附多设备管理技巧)

LVGL实战&#xff1a;STM32多存储设备文件系统集成与优化指南 在嵌入式UI开发中&#xff0c;资源管理往往成为制约项目灵活性的瓶颈。当LVGL界面需要加载大量图片、字体等外部资源时&#xff0c;如何高效管理SD卡、SPI Flash等多种存储介质&#xff0c;成为提升开发效率的关键。…...

告别混乱移植:LVGL v8.3输入设备(indev)驱动模块化配置实战(STM32+Touchpad/Keypad)

LVGL v8.3输入设备驱动模块化设计&#xff1a;从混沌到优雅的STM32工程实践 在嵌入式GUI开发中&#xff0c;LVGL的输入设备驱动移植往往是项目进度中最令人头疼的环节之一。当你的工程需要同时支持触摸屏、物理按键和旋转编码器时&#xff0c;传统的移植方式会让lv_port_indev.…...

DB1-05S05D 与 B0505D-1WR3 适配性实测|工业电源选型无改板替换指南

在工业控制、仪器仪表、通信设备等场景的电源选型中&#xff0c;DB1-05S05D和B0505D-1WR3两款隔离型DC-DC电源模块&#xff0c;因相同的电压规格与封装形式&#xff0c;均成为工程师的常用选择。两者核心电气参数与应用场景高度契合&#xff0c;均可适配各类常规工业设备的供电…...

欧姆龙NJ/NXPLC 全ST程序案例,全程序无加密,公司级框架,锂电新能源行业FB库文件

欧姆龙NJ/NXPLC 全ST程序案例&#xff0c;全程序无加密&#xff0c;公司级框架&#xff0c;锂电新能源行业FB库文件&#xff0c;NJ Socket功能PC端作为服务器&#xff0c;NJ作为客户端&#xff0c;汇川机械人控制&#xff0c;设备状态机&#xff0c;设备PPM&#xff0c;运行时间…...

别再死磕复杂模型了!用Python+NumPy手把手教你从卫星J2000坐标算出经纬度

从卫星J2000坐标到经纬度&#xff1a;Python实战指南 当拿到卫星的J2000坐标数据时&#xff0c;如何快速将其转换为可在地图上显示的经纬度&#xff1f;本文将用Python和NumPy带你一步步实现这个转换过程&#xff0c;避开复杂的理论推导&#xff0c;专注于代码实现和实际问题解…...

访问控制漏洞深度拆解(含代码)

在区块链安全事件中&#xff0c;访问控制漏洞(Access Control)已成为损失最高的攻击类型之一。攻击者无需复杂技术&#xff0c;只要找到“未加权限限制”的关键函数&#xff0c;就能直接接管合约甚至清空资金&#x1f50d; 漏洞原理解析该漏洞本质是“谁都能调用本该受限的函数…...