【面试经典 150 | 数组】最后一个单词的长度

文章目录

  • 写在前面
  • Tag
  • 题目来源
  • 解题思路
    • 方法一:遍历
  • 写在最后

写在前面

本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更……

专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾与总结,文章结构大致如下,部分内容会有增删:

  • Tag:介绍本题牵涉到的知识点、数据结构;
  • 题目来源:贴上题目的链接,方便大家查找题目并完成练习;
  • 题目解读:复述题目(确保自己真的理解题目意思),并强调一些题目重点信息;
  • 解题思路:介绍一些解题思路,每种解题思路包括思路讲解、实现代码以及复杂度分析;
  • 知识回忆:针对今天介绍的题目中的重点内容、数据结构进行回顾总结。

Tag

【字符串】【遍历】


题目来源

58. 最后一个单词的长度


解题思路

方法一:遍历

思路

明确题目的意思,字符串 s 的中间位置、开始位置、结束位置都可能有空格的出现,而且数量不确定。

为了统计最后一个单词的长度,可以从字符串 s 的末尾开始倒序遍历,从第一个非空格的字符开始统计直到遇到另一个空格这中间长度。

代码

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

(1)处用来找到从末尾第一个不是空格的位置开始,也就是最后一个单词的末尾开始
(2)统计最后一个单词的字符长度,结束标志是 再次遇到空格,或者遍历字符结束

复杂度分析

时间复杂度: O ( n ) O(n) O(n) n n n 是字符串 s 的长度。

空间复杂度: O ( 1 ) O(1) O(1)


写在最后

如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度的方法,欢迎评论区交流。

最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/563291.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字陷波器的设计

数字陷波器的设计 陷波器:一种特殊的带阻滤波器,其阻带在理想情况下只有一个频率点,主要用于消除某个特定频率的干扰。 例子 设计一个数字陷波器将输入信号中的50Hz工频干扰信号滤除,尽可能保留其他频率成分,设系统…

【论文笔记】基于预训练模型的持续学习(Continual Learning)(增量学习,Incremental Learning)

论文链接:Continual Learning with Pre-Trained Models: A Survey 代码链接:Github: LAMDA-PILOT 持续学习(Continual Learning, CL)旨在使模型在学习新知识的同时能够保留原来的知识信息了,然而现实任务中&#xff…

Xxl-job适配达梦数据库

项目说明 项目本身开发中采用定时框架:xxl-job是一个分布式任务调度平台,它是依托于MySQL数据库执行。但后续客户要求必须满足信创环境,因此调整MySQL数据库为达梦数据库。由此就有了xxl-job适配达梦数据库的一系列操作。 Xxl-job表结构导入…

spring注解驱动系列-- BeanPostProcessor与BeanFactoryPostProcessor

一、BeanPostProcessor与BeanFactoryPostProcessor的定义 一、BeanPostProcessor bean后置处理器,bean创建对象初始化前后进行拦截工作的 二、BeanFactoryPostProcessor beanFactory的后置处理器,在BeanFactory标准初始化之后调用,来定制和…

服务器Linux上杀死特定进程的命令:kill

1、查看用户XXX正在运行的进程 top -u xxx2、查看想要杀死的进程对应的PID 先找到此进程对应的命令 取其中的main-a3c.py即可 ps -aux | grep main-a3c.py可以看到对应的PID是1325390使用kill杀死对应PID的进程 kill -9 1325390成功,gpustat可以看到之前一直占…

JVM虚拟机(十二)ParallelGC、CMS、G1垃圾收集器的 GC 日志解析

目录 一、如何开启 GC 日志?二、GC 日志分析2.1 PSPO 日志分析2.2 ParNewCMS 日志分析2.3 G1 日志分析 三、GC 发生的原因3.1 Allocation Failure:新生代空间不足,触发 Minor GC3.2 Metadata GC Threshold:元数据(方法…

Microchip 32位MCU CAN驱动图文教程-附源码

文章目录 创建一个新的32位MCU工程Microchip MCC Harmony配置界面说明在MCC下配置系统的时钟在MCC下配置所需要使用的模块配置调试打印模块配置CAN模块配置管脚功能修改系统堆栈大小生成代码 添加用户代码 创建一个新的32位MCU工程 确保电脑上已经安装最新的MPlab X IDE、XC32编…

【Qt】探索Qt框架:跨平台GUI开发的利器

文章目录 1. Qt框架概述1.1. Qt框架的优点1.2. Qt框架支持的系统1.3. Qt开发环境 2. 搭建 Qt 开发环境2.1. Qt SDK 的下载和安装2.2. 新建项目: 3. Qt 框架内容简介总结 在当今软件开发领域,跨平台性和用户界面的友好性是至关重要的。而Qt框架作为一款跨平台的C图形…

西安大秦软件

西安大秦软件 大秦软件 想做小程序、APP、Web 系统,请找我,包您满意! 刘大强 (销售经理) 电话:198 8892 6712 微信:198 8892 6712 欢迎咨询 西安大秦时代网络科技有限公司

认知觉醒 PDF电子版 下载

认知觉醒 PDF电子版 开启自我改变的原动力 周岭 / 人民邮电出版社 / 2020-10 链接:https://pan.baidu.com/s/1EHUK_AhvE5TWAZsYXFQ5QA?pwdwrho 提取码:wrho

面试后,公司如何决定你的去留

在现代职场中,求职者在经历了一系列严格的面试流程后,往往会进入一段等待期。在这段时间里,他们满怀希望地等待企业的最终反馈。但有一个现象普遍存在:无论面试过程如何,最终决定权总是掌握在公司手中,由公…

【Python性能优化】list、array与set

list、array与set 详述测试代码 详述 本文对比 list 与 set 在插入和取值时的性能差异,以提供一条什么时候该选择什么数据类型的建议。先上结果: array 与 list 的不同: 内存方面 array 是 C array 的包装,它直接存储数据&#xf…

Llama 3大模型发布!快速体验推理及微调

Meta,一家全球知名的科技和社交媒体巨头,在其官方网站上正式宣布了一款开源的大型预训练语言模型——Llama-3。 据了解,Llama-3模型提供了两种不同参数规模的版本,分别是80亿参数和700亿参数。这两种版本分别针对基础的预训练任务…

JVM-垃圾收集算法

前言 在 Java 中,垃圾收集(Garbage Collection)是一种自动管理内存的机制,它负责在运行时识别和释放不再被程序使用的内存,从而避免内存泄漏和悬空引用问题。本篇文章将介绍三种常见的垃圾收集算法。 标记-清除&…

OCT2Former: A retinal OCT-angiography vessel segmentationtransformer论文总结

论文(COMPUT METH PROG BIO):OCT2Former: A retinal OCT-angiography vessel segmentation transformer 源码:https://github.com/coreeey/OCT2Former 一、摘要 背景与目的:视网膜血管分割在视网膜疾病自动筛查与诊断中起着重要作用。如何分…

2024 抖音欢笑中国年(五):Wasm、WebGL 在互动技术中的创新应用

前言 随着 Web 前端技术的不断发展,越来越多的新兴技术方案被引入到 Web 开发中,其中 Wasm 和 WebGL 作为前端领域的两大利器,为开发者带来了更多的可能性。 本文将结合2024 年抖音欢笑中国年的部分项目,重点介绍如何利用 Wasm 和…

TCP 协议特性

1. TCP 基本认识 TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。 面向连接:一定是「一对一」才能连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息,也就是一对多是无法做到的; 可靠的:无论的网络链…

【批量区域识别内容重命名】批量识别图片区域文字并重命名,批量图片部分识别内容重命文件,PDF区域识别提取重命名

我们在工作和生活中经常遇到这样的需求:比如将以下的图片区域识别进行重命名,批量识别后改成以时间和工作内容重命名,便于日后检索,快速查询 首先我们拍摄照片用到的是水印相机,这里的文字呢我们需要加个背景&#xff…

C++模版初阶----函数模版、类模版

C模版初阶 1. 泛型编程2. 函数模板2.1 函数模板概念2.2函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 函数模版的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 总结 1. 泛型编程 泛型编程 : 编写与类型无关的通用代码,是代码复用的一种手段…

利用STM32 HAL库实现USART串口通信,并通过printf重定向输出“Hello World“

一、开发环境 硬件:正点原子探索者 V3 STM32F407 开发板 单片机:STM32F407ZGT6 Keil版本:5.32 STM32CubeMX版本:6.9.2 STM32Cube MCU Packges版本:STM32F4 V1.27.1 上一篇使用STM32F407的HAL库只需1行代码实现US…