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
,输出是最后一个单词的长度length
。s
是一句句子,英文单词之间用空格分开。既然是求最后一个单词的长度,从后往前找比从前往后找更快。
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最后一个单词的长度
题目难度:简单 默认优化目标:最小化平均时间复杂度。 Python默认为Python3。 目录 1 题目描述 2 题目解析 3 算法原理及代码实现 3.1 反向遍历 参考文献 1 题目描述 给你一个字符串 s,由若干单词组成,单词前后用一些空格字…...

MySQL——数据库的操作,数据类型,表的操作
MySQL——数据库的操作,数据类型,表的操作 1. 数据库的操作1.1 显示当前数据库1.2 创建数据库舍弃当前所写的SQL语句查看当前数据库服务全局的默认字符集 1.3 使用数据库1.4 查看当前操作的数据库查看MySQL的帮助 1.5 删除数据库 2. 常见数据类型2.1 数值…...
Go 临界资源 安全问题
临界资源安全的问题: 临界资源: 指并发环境中多个 进程/线程/协程 可以共享(都可以调用)的资源/变量,如果在并发环境中处理不当,就会造成一些 严重、问题 func main() {//临界资源a : 10go func() {a 100f…...

安卓常用控件(上)
文章目录 TextViewButtonEditText TextView textview主要用于在界面上显示一段文本信息。 属性名描述id给当前控件定义一个唯一的标识符。layout_width给控件指定一个宽度。match_parent:控件大小与父布局一样;wrap_content:控件大小刚好够包…...
基于 RabbitMQ 实现延迟消息的订单处理流程
文章目录 订单创建流程1. 商品查询与订单数据初始化2. 总价计算与订单保存3. 扣减库存与购物车清理4. 延迟消息与支付状态检测 订单延迟消息监听器支付成功与订单取消1. 订单支付成功2. 订单取消与库存恢复 总结 在现代电商系统中,订单处理是一个复杂且关键的环节。…...

使用Python将Word文档转换为PNG图片
在这篇博客中,我将介绍一个使用Python编写的小工具,它能够将指定文件夹中的所有Word文档(.doc和.docx格式)转换为PNG图片。这个工具基于wxPython库构建图形用户界面,并结合了win32com和PyMuPDF库实现文档格式的转换。接…...
Qt创建Json对象时浮点数的精度控制
我们在Qt中使用Json都是使用QJsonDocument、QJsonArray、QJsonObject、QJsonValue等类。 当我们在QJsonObject中插入浮点数字段时,会发现浮点数的小数位数很长,如下所示: #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、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前 3 年积累测试经验,按如何做好测试工程师的要点去要求自己&a…...

【单片机毕业设计选题24106】-基于阿里云的心率呼吸监测系统
系统功能: 上电后OLED显示 “欢迎使用请稍后”,两秒后显示Connecting...表示 正在连接阿里云,正常连接阿里云后进入系统显示界面,如长时间显示Connecting...请 检查WiFi网络是否正确。 系统连接阿里云后可在阿里云界面查看到系统上报的温…...
leetcode28:找出字符串第一个匹配的下标
找出字符串第一个匹配的下标 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 public int strStr(Str…...

Java二十三种设计模式-桥接模式(10/23)
桥接模式:解耦抽象与实现的灵活设计 引言 桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模…...
Java 面试指南
Java 面试指南 目录 引言Java 基础知识 数据类型运算符控制结构面向对象编程 Java 高级特性 异常处理集合框架泛型多线程与并发 Java 标准类库 java.lang 包java.util 包java.io 包 Java Web 开发 ServletJSPSpring 框架 数据库连接与JDBC JDBC 基础数据库连接池 设计模式 单…...

计算机毕业设计选题推荐-自习室座位预约系统-Java/Python项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长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包含传输层,链路层,物理层。 应用层是对 JESD204B 进行配置的接口,在标准协议中是不含此层,只是为了便于理解,添加的一个层。 协议层指工程中生成的IP核JESD204B,负责处理输入的用户…...

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

JAVA WEB初步实验
Spring应用开发环境准备 安装配置Spring应用开发环境 熟悉IntelliJ IDEA开发工具 打开idea工具,创建普通Java工程 配置普通Java工程运行环境 得到基本的Java运行环境配置正常 修改pom.xml文件,搭建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(…...
电商行业中选择分账系统的关键因素!
分账是指将一笔交易的款项拆分成多个部分,按照预先设定的比例或规则分配给相关方。在电商行业中,分账通常是指将交易金额分给卖家、平台和其他相关方。 具体来说,分账可以帮助实现以下目标: 卖家结算:将顾客支付的货…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...