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

LeetCode#第58题:最后一个单词的长度

58. 最后一个单词的长度 - 力扣(LeetCode)

给你一个字符串 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”。

解析

这道题没有涉及算法,使用快慢指针fast slow,具体步骤如下:

1. fast,slow同时初始化在第一个字符,无论第一个字符是空格还是字母都不做处理;

2. fast不断遍历后续元素,如果遇到前一个元素是空格,本位元素是字母的情况,则识别为单词开头,把slow移到fast位置。

3. 如果fast遍历到\0,表示到末尾了,则进入一个小循环回头到上一个单词最后一个字母

4. 返回fast-slow+1即为结果

代码实现

int lengthOfLastWord(char* s) {int slow=0,fast;//如果你想要在函数末尾return结果,就不要把int fast写进for循环里for(fast=0; ; fast++){if(*(fast+s)=='\0'){//边界判断,到了边界就回头寻找最后一个单词末尾while(1){fast--;if(*(fast+s)!=' '){break;}}break;}if(fast!=0&&*(fast+s)!=' '&&*(fast+s-1)==' '){//识别到单词头了,则把慢指针移过来slow=fast;}}//计算最后一个单词长return (fast-slow+1);
}

相关文章:

  • python打卡day37@浙大疏锦行
  • C/C++内存泄漏深度解析与系统化解决方案
  • uniapp 配置本地 https 开发环境(基于 Vue2 的 uniapp)
  • 【前端】使用HTTPS
  • Debian操作系统全面解析:从起源到应用
  • ARINC818_FILE
  • Nginx 安全防护与 HTTPS 部署实战笔记
  • Oracle 的V$LOCK 视图详解
  • nginx安全防护与https部署实战
  • GaussDB资源冻结与解冻:精细化资源管理的实践与策略
  • 《软件工程》第 7 章 - 软件体系结构设计
  • Android开机向导定制(1)开机向导加载流程
  • 《软件工程》第 15 章 - 软件度量与估算:从概念到实践​
  • opencvsharp usb摄像头录像 c# H264编码
  • Python 网络编程入门
  • MMA: Multi-Modal Adapter for Vision-Language Models论文解读
  • macOS烧录stm32程序初步成功
  • 海思3519V200 上基于 Qt 的 OpenCV 和 MySql 配置开发
  • Simple Factory(简单工厂)
  • 《软件工程》第 14 章 - 持续集成
  • 云南网站建设哪家便宜/如何建网站要什么条件
  • 专做药材的网站有哪些/微信引流推广怎么做
  • bitcoind 做交易网站/武汉 网络 推广
  • 西安住房和城乡建设部网站/重庆seo网络优化师
  • 怎么做简易手机网站/百度安装免费下载
  • 网站用户体现好坏/网站推广推广