58. 最后一个单词的长度
解题过程
INFO
题目链接 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
javascript
/**
* @link https://leetcode.cn/problems/length-of-last-word/
* @title 58. 最后一个单词的长度
* @description 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
* 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
* @param {string} s
* @return {number}
*/
// 解法一
// 思路:正则表达式匹配空格字符拆分数组形式,然后输出最后一位单词长度
var lengthOfLastWord = function (s) {
const strArr = [ ...s.match(/\S+/g)]
return strArr[strArr.length - 1].length
}
// 解法二
// 思路:去除字符串收尾空格,累增计算最后一个连续字符长度即可
var lengthOfLastWord = function (s) {
let len = 0
const newStr = s.trim()
for (let i = 0; i < newStr.length; i++) {
if (newStr[i] !== ' ') {
len++
} else {
len = 0
}
}
return len
}
// 解法三
// 思路:去除字符串收尾空格,字符长度减去最后一个出现空格位置的字符位置
var lengthOfLastWord = function (s) {
return s.trim().length - s.trim().lastIndexOf(' ') - 1
}
// const result = lengthOfLastWord('Hello World') // 5
// const result = lengthOfLastWord(' fly me to the moon ') // 4
const result = lengthOfLastWord('luffy is still joyboy') // 6
console.log(result)
解题感受
相对很好写这一题,解题思路也会比较多,蛮愉快的,基本使用字符串 API、正则、循环遍历三种方式不同解法执行效果差不多