开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
题目 leetcode.cn/
- 给你一个字符串
s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 - 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例
输入: s = "Hello World";输出: 5;解释: 最后一个单词是“World”,长度为5。
输入: s = " fly me to the moon ";输出: 4;解释: 最后一个单词是“moon”,长度为4。
输入: s = "luffy is still joyboy";输出: 6;解释: 最后一个单词是“joyboy”,长度为6。
提示
1 <= s.length <= 100000s仅有英文字母和空格' '组成s中至少存在一个单词
代码
function lengthOfLastWord(s: string): number {
let str = s.trim();
for(let i = str.length - 1; i >= 0; i--){
if(str[i] === ' '){
return str.length - 1 - i;
}
if(i === 0){
return str.length;
}
}
};
- 第一种方式
- 给定的字符串中只包含英文字母和空格,首先可以使用字符串的
trim方法将字符串的首尾空格都去除(不管首尾有没有空格),去除首尾空格后,得到的字符串末尾一定是英文字母。 - 接下来就要判断这个英文字母的连续性了,有多少个英文字母连续(中间没有空格),最后一个单词的长度就是多长。
- 从后向前遍历去除前后空格的字符串,找到第一个字符为空格的下标,最后一位单词的长度就为整个字符串长度减去当前下标,再减去
1,因为最后一位下标为length - 1; - 如果只有一个单词,即去除前后空格后再无空格,那么最后一个单词的长度就是去除空格后字符串的长度。
- 给定的字符串中只包含英文字母和空格,首先可以使用字符串的
function lengthOfLastWord(s: string): number {
let str = s.split(' ');
for(let i = str.length - 1; i >= 0; i--){
if(str[i] !== ''){
return str[i].length;
}
}
};
- 第二种方式
- 将给定带空格的字符串用
split方法按照空格切割成数组。那么原本是空格的将会分为数组的空字符串项 - 将数组从后向前遍历,第一个不是空字符串的项就是最后一个单词。返回该数组项的长度即可。
- 将给定带空格的字符串用