开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
1 题目
给你一个字符串 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 <= 104s仅有英文字母和空格' '组成s中至少存在一个单词
2 个人解析
2.1 思路
拿到这题呢,我首先想到的是将这些字段串根据‘ ’空格字符分割成一个个元素,放到一个数组里,之后我们再计算最后一个单词(也就是最后一个数组下标里面的元素)的长度就ok啦~
2.2 代码
- 实现方式1
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
return s.split(' ').filter(value=>value!=='').at(-1).length
};
- 实现方式2
/**
* @param {string} s
* @return {number}
*/
var lengthOfLastWord = function(s) {
return s.trim().split(" ").at(-1).length
};
3 小结
在我按照我的思路做题的时候,经过实践发现,因为我用的是split来分割的,同时系统给的字符串末尾会有多个空格的情况,这就导致分割的时候产生的新数组最后一个的元素里面不一定就是最后一个单词,可能是一个空字符串(因为split遇到特定的字符就会分割一个元素增加到新数组里,我这里放的特定元素是' '空格元素,多个空格在一起,那就会放空字符串到新数组里面~)。
所以呢,我又做了个筛选,将数组里面是空字符串的元素都筛去。
当然我们也可以采用字符串的trim()方法(将字符串两端的空格字符都删去,然后返回)先处理一个字符串。
感谢看完:
- 博主个人前端网站:zhangqiang.hk.cn
- 欢迎加入博主的前端学习qq交流群::706947563,专注前端开发,共同学习进步啊 ~