首页 > 其他 > 详细

leetcode每日一题(2021.5.14)——最后一个单词的长度

时间:2021-05-15 00:46:07      阅读:22      评论:0      收藏:0      [点我收藏+]

题目:最后一个单词的长度(简单)

一、问题描述  

给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

示例 1:

输入:s = "Hello World"
输出:5

示例 2:

输入:s = " "
输出:0

提示:

    • 1 <= s.length <= 104
    • s 仅有英文字母和空格 ‘ ‘ 组成

 

二、解答过程

  首先考虑特殊情况,不存在最后一个单词,那么就是说明这个字符串中没有字母,因为即使输入“ a ”这种字符串那它里面包含的单词就是a

  因为题设中的s只由空格和字母组成,所以特殊情况只可能是字符串为空,或者字符串中只有空格。

  反正要返回最后一个单词的长度,不如从后向前遍历,相当于遍历到第一个单词就停止。

  为了方便可以定义两个指针,一个指针总是指向最后一个单词单词的末尾,另一个指针总是指向最后一个单词的开头的前一个位置。最后只要把两个指针相减就能求出单词的长度了

  按照上述思想尝试写一下代码

技术分享图片

  技术分享图片

 

 运行结果还是很令人满意的

 

三、总结

  这道题不算难,但是方法很巧妙,我一开始执意于从前向后遍历,但是再查看提示后才明白了既然问最后一个单词,可以直接从后向前遍历就很方便,要做的判断也少很多。

  通过这道题可以总结出来,如果要求某个数组末尾的某些元素可以尝试对数组逆序遍历,这样相当于把数组颠倒。双指针可以简化很多操作,在做算法时需要多尝试双指针。

 

  

 

leetcode每日一题(2021.5.14)——最后一个单词的长度

原文:https://www.cnblogs.com/zyq79434/p/14770354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!