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

news/2024/9/20 7:27:15/ 标签: 面试, 字符串, 遍历, C++

文章目录

  • 写在前面
  • 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)


写在最后

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

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

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


http://www.ppmy.cn/news/1429874.html

相关文章

我与C++的爱恋:日期计算器

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:我与C的爱恋 朋友们大家好啊,在我们学习了默认成员函数后,我们通过上述内容,来实现一个简易的日期计算器。 ​ ​ 头文件的声明 #pragma once #incl…

文档分享怎么用二维码?扫码获得文档的制作方法

现在日常工作和生活中,经常会看到可以用于展示文件的二维码图片,使用这种方式可以向其他人传递一些资料、通知、数据等情况。比如常见的内容有企业介绍、产品内容、使用说明、活动流程等类型的内容,那么这些不同类型的文件该如何制作二维码呢…

高光谱遥感数据处理与机器学习深度应用

高光谱遥感数据处理的基础、python开发基础、机器学习和应用实践。重点解释高光谱数据处理所涉及的基本概念和理论,旨在帮助学员深入理解科学原理。结合Python编程工具,专注于解决高光谱数据读取、数据预处理、高光谱数据机器学习等技术难题,…

Redis快速入门操作

启动Redis 进入命令行客户端 字符串命令常用操作(redis默认使用字符串来存储数据) 列表(Lists)常用操作 集合(Sets)常用操作 (无序集合且元素不可重复) 有序集合(So…

springboot实现图片防盗链功能

前言: 出于安全考虑,我们需要后端返回的图片只允许在某个网站内展示,不想被爬虫拿到图片地址后被下载。或者,不想浏览器直接访问图片链接。 出于性能考虑,不想要别人的网站,拿着我们的图片链接去展示&…

游戏缺少steam_api.dll解决方法-电脑无法找到steam_api.dll修复办法

在当今的数字娱乐领域,Steam作为全球最大的综合性数字发行平台之一,不仅为数以亿计的用户提供便捷的游戏购买、下载、更新服务,还集成了丰富的社交功能及开发者支持工具。对于任何通过Steam平台运行的游戏而言,其背后都离不开一个…

Android JetPack Compose+Room----实现搜索记录功能

文章目录 需求概述功能展示实现搜索功能使用的技术1.Android Jetpack room2.Android JetPack Compose 代码实现编写搜索界面接入Room实现搜索功能的管理引入依赖定义包结构定义操作表的Dao类定义数据库的基础配置定义数据库的Dao管理类使用数据库升级 源码地址 需求概述 搜索功…

好用、可靠有安全的企业局域网文件传输工具

在当今商业环境中,企业对于快速、安全的局域网(LAN)文件传输解决方案的需求不断攀升。选择恰当的工具对提升工作效率和保障数据安全至关重要,同时还能降低潜在的信息泄露风险。以下是企业在挑选局域网文件传输解决方案时应考虑的关键因素及其重要性的详细…

Java电子签名图片生成工具类

在业务中有需要用户信息确认时候去进行电子签名,在实现电子签名存证时候,可以在前端生成图片也可以在后端生成签名存证图片,这里实现一下关于后端Java实现的方法,并总结成工具类,方便之后调用。 工具类方法一 import…

玩转压力管理,轻松高效编程

程序员缓解工作压力的小窍门 在当今快速发展的科技时代,程序员作为数字世界的建筑师,面临着高强度、高压力的工作环境。为保持工作效率和创新能力,同时也确保身心健康和个人热情的持久续航,采取科学合理的减压策略至关重要。 方…

前端模块化整理汇总

AMD 异步加载,依赖前置,前置依赖建议写在前引用,在所有模块加载完成后立即执行回调函数,用户体验好,不容易造成卡顿 需要引用require.js //math.js define([], function () {function add(a, b) {return a b;}retur…

qt实现不定数量的按钮向前向后移动展示

按钮模拟移动 引言示例代码第一种思路开发环境代码结构实现代码第二种思路开发环境实现代码第三种思路开发环境实现代码总结引言 此文主要记录用qt实现按钮的移动,具体效果如下: 模拟按钮移动效果 示例代码 本文记录了三种实现方式。 第一种 思路 用动态数组vector存放创…

代码随想录算法训练营第四十八天|leetcode72、583题

一、leetcode第583题 本题要求删除两个单词中的字母使得剩余字母均相同,因此设置dp数组,dp[i][j]的含义是0-(i-1)个字母和0-(j-1)个字母相同时需要删除的最少次数。递推公式在word1[i-1]word2[j-1]时&…

探索DrissionPage:结合浏览器自动化与数据包操控的先进工具

在现代Web开发的世界中,自动化测试和网页操控已经成为日常开发、测试乃至运维工作的重要组成部分。随着技术的不断进步,开发者们总是在寻找更高效、更稳定且能绕过各种限制的工具来满足不断增长的需求。在这样的背景下,DrissionPage应运而生&…

STL-标准模板库

STL的诞生 长久以来,软件界一直希望建立一种可重复利用的东西c的面向对象和泛型编程思想,目的就是复用性的提升大多数情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作为了建立数据结构和算法的一套标准&#xf…

C++高级特性:四种类型转换(九)

1、C四种类型转换 强制类型转换是有一定风险的,有的转换并不一定安全;如把整型数值转换成指针,把基类指针转换成派生类指针,把一种函数指针转换成另外一种函数指针,把常量指针转换成非常量指针等… C语言强制类型转换…

数据安全:口令

数据安全:口令 概念 在数据安全和网络安全领域中,口令(或密码)的安全性至关重要。其中,弱口令和强口令是两个核心概念,它们分别代表了不同级别的密码安全性。 弱口令通常指的是那些容易被猜测或破解的密…

ICLR 2024 | FTS-Diffusion: 用于合成具有不规则和尺度不变模式的金融时间序列的生成框架

ICLR 2024 | FTS-Diffusion: 用于合成具有不规则和尺度不变模式的金融时间序列的生成框架 原创 QuantML QuantML 2024-04-17 09:53 上海 Content 本文提出了一个名为FTS-Diffusion的新颖生成框架,用于模拟金融时间序列中的不规则和尺度不变模式。这些模式由于其独…

C语言笔试题

想成为嵌入式程序员应知道的0x10个基本问题:预处理器(Preprocessor) 1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想…

2023第十四届蓝桥杯省赛C++A组:平方差

题目很简单 直接上代码 代码 #include<bits/stdc.h> using namespace std; int main() {int L, R;cin >> L >> R;int count 0;for (int i L; i < R; i) {if (i % 4 ! 2)count;if (i 4 < R){i 4;count 3;}}cout << count; }