Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情
题目描述
- 给你一个字符串 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”。
思路分析
- 从题目中可知是要返回最后一个单词的长度,那么,我们可以选择从字符串的后面开始遍历,并且,题目中“字符串S是由若干个单词组成”,那么这个字符S绝对有字母;在反向遍历中,第一次找到的单词就是这个字符串的最后一个单词;
- 开始遍历的时候,如果遇到字母时就开始计算,直至遇到空格或者是此字符串的起始位置字母就停止计算,这时候计算的总量就是最后一个单词的长度。
AC代码
funtion getLength(){
let strs = 'wewe sdsfjd';
let length = 0;
for(let i=strs.length-1; i>=0; i--) {
if(strs.charAt(i) != " "&&i>=0) {
length++
}else if(i>=0&&length>0) {
console.log(length)
break
}
}
}
总结
这是一个简单的计算单词长度算法,这里主要使用到 charAt() 方法,复杂类型属于简单的;这道算法题还有很多种解法,这里只是给出了一个简单的解决方法(出自力扣)。