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

58.最后一个单词的长度

目录

一、问题描述

二、解题思路

三、代码

四、复杂度分析


一、问题描述

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

二、解题思路

我们可以从字符串的 末尾向前遍历

  1. 跳过末尾的空格,因为末尾可能有很多多余空格。

  2. 开始计数字母个数,直到遇到第一个空格或字符串开头,说明找到了最后一个单词。

  3. 返回计数值即可。

三、代码

class Solution {
public:int lengthOfLastWord(string s) {int length = 0;                     //用于记录最后一个单词的长度int i = s.size() - 1;               //从字符串末尾开始向前遍历//第一步,跳过字符串末尾的空格while(i >= 0 && s[i] == ' '){--i;}//第二步,开始统计最后一个单词的长度while(i >= 0 && isalpha(s[i])){++length;                       //遇到字母就增加长度计数--i;                            //向前继续遍历}return length;                      //返回最后一个单词的长度}
};

四、说明

  • isalpha(c) 是 C++ 中判断字符是否为英文字母的函数;

  • 若字符串全为空格,或不包含单词,会返回 0(符合预期);

  • 时间复杂度:O(n),最多遍历一次字符串;

  • 空间复杂度:O(1),只用了常数空间。

相关文章:

  • 使用excel 制作数据库的数据浏览器
  • 使用cursor进行原型图设计
  • 解决本地浏览器访问服务器端语音识别项目显示“麦克风未授权”的问题
  • 【代理错误 django】Request error: HTTPSConnectionPool(host=‘‘, port=443): 、
  • openwebui搭建mcp
  • Windows安装Ollama并指定安装路径(默认C盘)
  • WebStorm中Gitee账号的密码登录与令牌登录设置
  • 每日一道leetcode
  • 天元证券|奶粉行业结构性回暖 乳企竞速全龄化、国际化
  • java忽略浅拷贝导致bug
  • blender 导出衣服mesh为fbx,随后导入UE5,坐标轴如何保存一致
  • 算法基础(以acwing讲述顺序为主,结合自己理解,持续更新中...)
  • 3.k8s是如何工作的
  • 【Web前端技术】第一节—HTML简介
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第二模块·语法迁移篇 —— 第四章 数据类型:从sizeof到包装类的进化
  • ocr-身份证正反面识别
  • 一个由通义千问以及FFmpeg的AVFrame、buffer引起的bug:前面几帧影响后面帧数据
  • 关于系统架构思考,如何设计实现系统的高可用?
  • FlexRay协议详解:优点、缺点及常用MCU推荐
  • 【HDFS入门】HDFS副本策略:深入浅出副本机制
  • 建设工程项目管理网站/软文发稿网站
  • 怎样在网站做视频链接/网上在线看视频为什么卡
  • 哈尔滨政府招标信息网/搜索引擎排名优化技术
  • 网站建设规范方法/网站建设网络营销
  • 搜索引擎网站建设/seo外链在线工具
  • 做商城网站要哪些流程/百度广告联盟平台的使用知识