力扣之最后一个单词的长度
问题描述
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5
解释:最后一个单词是“World”,长度为5。
示例 2:
输入:s = "fly metothe moon"
输出:4
解释:最后一个单词是“moon”,长度为4。
示例 3:
输入:s = "luffy is still joyboy"
输出:6
解释:最后一个单词是长度为6的“joyboy”。
力扣原题目地址:https://leetcode.cn/problems/...解决方案 方案一 去空格加空格倒叙遍历计数
因为题目是求最后一个单词的长度,所以要倒叙遍历,然后出现一个字母词,就记一个数。当遇到空格的时候,说明单词结束(为了以防万一,所以手动在单词的最左侧添加一个空格)
var lengthOfLastWord = function (s) {
// 1. 先把左右空格都去掉,再手动添加一个左空格。之所以添加左空格是因为遍历到空格时,就停止遍历
s = ' ' + s.trimEnd() // 2. 遍历到空格时候,说明一个单词正好完成了
let n = 0 // 3. 定义一个n用来统计次数
for (let i = s.length - 1;
i >= 0;
i--) { // 4. 因为求最后一个单词的长度,所以倒叙遍历即可。注意i要>=0,只>0就会少统计一次
if (s[i] == ' ') { // 5. 若是遇到空格了,就直接返回已统计好的次数,即:单词的长度
return n
} else { // 6. 没遇到空格说明是单词,那么就统计单词的词个数
n = n + 1
}
}
};
方案二 去空格转数组,并取得最后一项的长度
去空格转数组,并取得最后一项的长度,最后的一项即为最后一个单词
var lengthOfLastWord = function (s) {
s = s.trim().split(' ') // 1. 去空格,并按照空格把字符串转成数组
return s.at(-1).length // 2. 获取数组的最后一项(即倒数第一项),即为最后一个单词
};
数组的
Array.prototype.at()
方法回顾平常我们获取数组的最后一项的值,一般都是这样写:
let arr = ['aaa','bbb','ccc']
arr[arr.length - 1] // 'ccc'
不过
at()
方法其实会更加方便【力扣之最后一个单词的长度】
at()
方法接收一个整数值并返回该索引的项目,允许正数和负数。负整数从数组中的最后一个项目开始倒数。array[0]
将返回第一个项目。然而,对于后面的项目,不要使用array.length,例如,对于最后一个项目,可以调用array.at(-1)
故:let arr = ['aaa','bbb','ccc']
arr.at(-1) // 'ccc'
Array.prototype.at()
官方文档:https://developer.mozilla.org...
不过at
方法只适用取值,不能进行赋值更改...推荐阅读
- flex 布局
- 飞速创软 | 在IT和业务之间(为什么低代码对数字化转型至关重要())
- 一款在线错别字校对工具的研发之路
- redux|redux action ajax,Redux介绍之异步Action
- 主流游戏相机实现|主流游戏相机实现 之Cinemachine 概述
- Neo4j基础入门
- 科股早知道|钛媒体科股早知道:大容量和长时储能的理想技术路线,钒液流电池上游资源或迎供应缺口;工业生产中最重要的工具之一,这一产品在工业体
- 子非鱼,安知鱼之乐
- 2017年冬天跑步之运动服装
- React|【React组件】github搜索案例之 父子组件通信 (附源码)