58.最后一个单词的长度

给你一个字符串 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 中至少存在一个单词

思路:字符串中每个单词前后可能有不止一个空格,这是比较麻烦的地方,我们可以用正则表达式将字符串中的多个空格都变成一个空格,re.sub函数用于替换文本。\s+是一个正则表达式,表示匹配一个或多个空白字符(包括空格、制表符等),然后我们将这些连续的空白字符替换为单个空格。.strip()是用来移除字符串首尾的空白字符,确保字符串两边没有不必要的空格。然后对字符串用空格进行切分,就得到了每一个单词,然后返回最后一个单词的长度。

代码(Python):

class Solution(object):def lengthOfLastWord(self, s):s = re.sub(r'\s+', ' ', s).strip()      #将多个空格用一个空格代替,且去掉首尾的空格s = s.split(' ')                        #字符串按空格切分return len(s[-1])                       #返回最后一个单词的长度

思路:对于不熟悉正则表达式的人来说很难想到这种方式,或者说想到了不借助工具也很难写出来,当然还有不借助正则表达式的方法。

那我们可能就会想到从前往后遍历字符串,获取每一个单词,然后返回最后一个单词的长度,但其实不用,因为我们只需要用到最后一个单词,所以从后往前找到第一个单词,也就是字符串的最后一个单词,然后返回它的长度即可,不需要保存这个单词到底是什么。

代码(Python): 

class Solution(object):def lengthOfLastWord(self, s):s = s.strip()                    #去掉首尾的空格result = 0                       #最后一个单词的长度for i in range(len(s)-1,-1,-1):   #从后往前遍历if s[i] != ' ':              #不是空格,那就是字符,单词长度+1result += 1else:                        #碰到第一个空格就退出循环breakreturn result

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构5---矩阵和广义表

一、矩阵的压缩存储 特殊矩阵:矩阵中很多值相同的元素并且它们的分布有一定的规律。 稀疏矩阵:矩阵中有很多零元素。压缩存储的基本思想是: (1)为多个值相同的元素只分配一个存储空间; (2)对零元素不分配存储空间。 1、特殊矩阵的压缩存储 &#xff08;1&#xff09;对称矩…

【机器学习】必会降维算法之:随机投影(Random Projection)

随机投影&#xff08;Random Projection&#xff09; 1、引言2、随机投影&#xff08;Random Projection&#xff09;2.1 定义2.2 核心原理2.3 应用场景2.4 实现方式2.5 算法公式2.6 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;降维算法还没讲完呢。 小鱼&a…

浙江保融科技2025实习生校招校招笔试分享

笔试算法题一共是有4道&#xff0c;第一道是手搓模拟实现一个ArrayList&#xff0c;第二道是判断字符串是否回文&#xff0c;第三道是用代码实现1到2种设计模式。 目录 一.模拟实现ArrayList 二.判断字符串是否回文 ▐ 解法一 ▐ 解法二 ▐ 解法三 三.代码实现设计模式 一…

网络协议安全:TCP/IP协议栈的安全问题和解决方案

「作者简介」:北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖Web安全、系统安全等12个知识域的一百多个知识点,持续更新。 这一章节我们需要知道TCP/IP每…

大模型扫盲系列——大模型实用技术介绍_大模型底层技术是哪些

Gemma模型架构和参数计算 近期&#xff0c;大模型相关的技术和应用层出不穷&#xff0c;各个方向的论文百花齐放&#xff0c;底层的核心技术是大家公认的精华部分。本文从技术的角度聚焦大模型的实战经验&#xff0c;总结大模型从业者关注的具体方向以及相关发展&#xff0c;帮…

干货 | 如何进行群体DNA甲基化分析

目前&#xff0c;针对群体的研究基本上还是以重测序为主&#xff0c;基于对遗传多样性丰富的自然群体中的个体进行全基因组重测序&#xff0c;研究物种遗传进化多样性&#xff0c;结合准确的目标性状的表型数据及统计方法进行全基因组关联分析&#xff0c;可对动植物复杂农艺性…

网络性能测试工具 iperf

简介 Iperf 是一个网络性能测试工具&#xff0c;可以测试最大TCP和UDP带宽性能&#xff0c;具有多种参数和UDP特性&#xff0c;可以根据需要调整&#xff0c;可以报告带宽、延迟抖动和数据包丢失。 官网地址&#xff1a;iPerf - Download iPerf3 and original iPerf pre-comp…

shell 脚本批量导入、导出docker images

目录&#xff1a; 需要将运行中的docker 容器批量出&#xff0c;并在新的主机上批量导入。 创建批量导出脚本 export_docker_images.sh #!/bin/bash# 检查 Docker 是否在运行 if ! docker info > /dev/null 2>&1; thenecho "Docker 似乎没有运行。请确保 Dock…

MEME使用-motif分析(生物信息学工具-24)

01 背景 Motif分析是一种在生物信息学和计算生物学中广泛应用的技术&#xff0c;用于识别DNA、RNA或蛋白质序列中具有生物学功能的短保守序列模式&#xff08;motif&#xff09;。这些motif通常与特定的生物学功能相关&#xff0c;如DNA中的转录因子结合位点、RNA中的剪接位点…

最新Springboot小程序医院核酸检测服务系统

采用技术 最新Springboot小程序医院核酸检测服务系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 管理员页面 医护人员管理 普通管理员管理 接种进…

稳定安全生产设备日志采集工具

免费试用下载: Gitee下载 最新版本 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

vector oj题 和 位运算

知识点1&#xff1a; lowbit(x) 简介&#xff1a;众所周知&#xff0c;lowbit()操作是算法竞赛中的高级技巧&#xff0c;特别是高级数据结构&#xff0c;线段树的核心&#xff0c;还有什么二进制与位运算题目&#xff0c;而本文就用最通俗易懂的话&#xff0c;来教会大家lowbi…

mysql手工命令备份与自动备份

1、手工备份数据库数据 进入命令目录&#xff1a;cd /usr/local/mysql/bin&#xff0c;确保该目录下有mysqldump 然后在命令行 输入 mysqldump -u root -p dbname > dbname_backup_20240612.sql 注意&#xff0c;这里的dbname 是指你想要备份的数据库的名字。 通过这个命…

go-zero 安装

1.安装goctl 工具 go install github.com/zeromicro/go-zero/tools/goctllatest 2.安装protoc goctl env check --install --verbose --force 3.创建项目总目录 gozero_stusy &#xff08;此目录为总目录&#xff0c;下面有多个服务&#xff0c;每个服务一个目录 比如 use…

【MySQL系列】MySQL 字符集的演变与选择

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

[信号与系统]有关滤波器的一些知识背景

前言 最近在看FIR和IIR&#xff0c;本文作为前置&#xff0c;需要在理解这两种滤波器之前阅读。 本文内容会详细讲述一下有关滤波器的技术要求。 选频滤波器的频率响应 选频滤波器&#xff08;Selective Frequency Filter&#xff09;的频率响应是描述该滤波器在不同频率下…

配置yum本地源脚本

在应对无网络或者其它特殊情况下&#xff0c;使用本地yum源 ①查看Linux系统版本&#xff0c;不同的版本yum仓库的挂载路径有所不同 > 以repodata所在目录为准 ②将光盘挂载到手动挂载点/mnt下面 ③将原有yum源仓库进行迁移备份 ④配置本地yum源仓库信息并初始化 #!/us…

中国企业数字化转型现状、趋势和挑战

一、来自不同行业、不同所有制的145家企业的调查 为了了解中国企业数字化转型的现状、趋势和挑战&#xff0c;2022年我们完成了一次在线问卷调查。 受访企业达145家&#xff0c;国内企业111家&#xff0c;占比77%&#xff08;其中央企占总比例51%&#xff09;&#xff0c;民营…

【数据结构与算法(C语言)】离散事件模拟- 单链表和队列的混合实际应用

目录 1. 前言2. 流程图3. 数据结构3.1 单链表3.2 链式队列 4. 核心函数4.1 银行业务模拟 void BankSimulation()4.2 初始化 void OpenForDay()4.3 客户到达 void CustomerArrived(Event en)4.4 客户离开 void CustomerArrived(Event en) 5. 非核心函数5.1 新建客户 NewCustomer…

滑动窗口(单调栈)

239. 滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1…