持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第21天,点击查看活动详情
题目
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个单词的长度
输入: s = "luffy is still joyboy"
输出: 6
解释: 最后一个单词是长度为6的“joyboy”。
题解
我们先声明一个
res变量,在使用split方法将出参s字符串中以空格隔开的字符转换为数组并赋值给res变量,然后使用for循环的方法对res数组进行倒序循环,在循环中使用if语句进行判断当前res数组中的字符是否长度等于0,如果等于0则进行下一轮循环,如果当前res数组中的字符数据长度不等于0的,则直接将字符的数据长度返回出去
var lengthOfLastWord = function(s) {
let res = s.split(' ');
for(let i = res.length-1; i >=0 ;i--){
if(res[i].length != 0){
return res[i].length;
}
}
};
这是另一种思路,我们先声明一个
len变量,他是出参s的总长度,在声明一个flag变量,默认值为false,然后在声明一个res变量用于存储最终返回结果的,然后我们使用for循环进行倒序循环,在循环中我们先判断当前flag变量是否为true且当前循环出参s的值是否为空,如果是则退出循环,如果不是则进入下一层判断,我们判断当前出参s循环中的值是否不为空,为空则直接进入下一次循环,不为空则将flag变量改为true,并将当前的字符拼接到res变量上,当循环结束后,直接返回变量res的数据长度即可
var lengthOfLastWord = function (s) {
const len = s.length;
let flag = false;
let res = '';
for (let i = len - 1; i >= 0; i--) {
if (flag && s[i] === ' ') break;
if (s[i] !== ' ') {
flag = true;
res += s[i];
}
}
return res.length;
};
这是最简单的方法,我们只需要使用
trim方法先将出参s去除两端空格,在使用split方法以空格的方式隔开组成数组,然后在使用pop方法删除数组中的末尾值,最后将当前的值长度直接返回即可
var lengthOfLastWord = function(s) {
return s.trim().split(' ').pop().length
};
坚持努力,无惧未来!